Android O automaattäite raamistik lahendab lõpuks paroolihalduritega pikaajalise viivitusprobleemi

Android O uus automaattäite raamistik lahendab paroolihaldurite juurdepääsetavuse teenustega seotud pikaajalise viivitusprobleemi.

Sellest on juba kuu aega möödas, kui Google selle välja andis esimene Android O arendaja eelvaade (aeg lendab kindlasti kiiresti!) ja nagu iga uue Androidi versiooni puhul, on siin palju süvenemist. Oleme avaldanud palju artikleid Android O kohta, kuid on üks funktsioon, mis minu arvates pole pälvinud väärilist tähelepanu: Automaatse täitmise raamistik.

Automaatne täitmine Android O-s

Paroolihaldurid on tänapäeval kümmekond peenraha (kuigi me oleme osaline avatud lähtekoodiga KeePassiga), kuid ainult Android O-ga toetab Google ametlikult paroolihaldureid. Android O-ga saavad kolmanda osapoole rakendused täita automaatse täitmise teenuse rulli, mis suhtlevad rakendustega uue automaattäite raamistiku kaudu. Rakendused, mis kasutavad standardset Vaade elemendid töötavad koos automaatse täitmise raamistikuga, kuigi arendajad saavad teha täiendavaid samme optimeerida automaatseks täitmiseks

 tagamaks, et rakenduse mis tahes kohandatud vaadet saab automaatselt täita.

Kui automaattäidetav vaade fookusesse tuleb, käivitab automaattäite raamistik automaatse täitmise taotluse. Automaatse täitmise teenus saadab tagasi teatud automaatse täitmise andmestikud (nt kasutajanimi, parool, aadress, krediitkaardi numbrid jne), mille kasutaja saab seejärel valida. Automaatse täitmise teenuse määrab kasutaja menüüs Seaded --> Rakendused ja märguanded --> Vaikerakendused --> Automaatse täitmise rakendus.

Automaatse täitmise rakendus Android O-s. Autorid: Lastpass.

Ülaltoodud uue automaattäite raamistiku selgitus on vaid lühike kokkuvõte sellest, mis toimub nii taotleva rakenduse kui ka automaatse täitmise teenuse lõpus. Teie arusaamise jaoks pole kõige olulisem Android O-s automaatse täitmise täpsed üksikasjad, vaid asjaolu, et paroolihalduri rakendused ise ei tuvasta enam, millal saab vaadet automaatselt täita.


Soovitatav lugemine: AgileBits näitab, milline Android O automaattäite raamistik välja näeb


Automaatne täitmine enne Android O

Võrrelge seda sellega, kuidas automaatne täitmine töötas enne Android O-d. Enne oli paroolihalduritel mis tahes ametlik meetod tuvastamaks, millal saab vaadet automaatselt täita rakendus pidi praeguse vaate skannimiseks rakendama juurdepääsetavuse teenust, et leida automaattäidet väljad.

Juurdepääsetavusteenuse kasutamine aga võib tulemuseks on märkimisväärne viivitus teatud tingimustel. Teie tüüpilise paroolihalduri juurdepääsetavuse teenusega seotud viivitus on aga nii ilmne, et populaarsetel teenustel, nagu LastPass, on isegi tugilehed teemaga seoses. Need tugilehed ütlevad teile tavaliselt, et teie ainus võimalus nende põhjustatud liigse viivitusega tegelemiseks Juurdepääsetavusteenus keelab juurdepääsuteenuse või lülitub üle oma kohandatud sisendi kasutamisele meetod. Mõlemal juhul kaotate igasuguse automaatse täitmise võime.

Kuid miks täpselt tundub, et LastPassi juurdepääsetavuse teenus või mõni muu paroolihalduri juurdepääsetavuse teenus põhjustab nii palju viivitust? Põhjus on selles, kuidas need paroolihaldurid peavad sisestusväljade tuvastamiseks kasutama juurdepääsetavuse teenuseid. Juurdepääsetavuse teenus atribuudid on määratletud an XML-ressursifail APK-s, et saaksime näha, kuidas teenus APK-faili dekompileerides töötab.

Allpool on LastPassi APK dekompileerimisest võetud ressursifail:


"@string/accessibility_service_description"
android: accessibilityEventTypes="typeViewFocused|typeWindowContentChanged"
android: accessibilityFeedbackType="feedbackGeneric"
android: notificationTimeout="200"
android: accessibilityFlags="flagReportViewIds"
android: canRetrieveWindowContent="true"
android: canRequestEnhancedWebAccessibility="true"
xmlns: andro />

Sellest saame koguda järgmise teabe: LastPassi juurdepääsetavuse teenus taotleb jälgimiseks kahte tüüpi sündmused – TYPE_VIEW_FOCUSED ja TYPE_WINDOW_CONTENT_CHANGED. See teeb seda seetõttu, et ta peab teadma, millal rakenduse/veebilehe sisu muutub või fookusesse kerkib, ja seejärel hangib praeguse akna sisu, et otsida parooli sisestusvälju. Kuid kuna teenus teeb seda pidevalt kahe eriti sageli käivitatava juurdepääsetavuse sündmuse puhul, põhjustab see viivitust. Põhjalikumaks aruteluks selle üle, kuidas juurdepääsetavuse teenused võivad viivitust põhjustada, viitan teile oma eelmisele selleteemalisele artiklile.


Soovitatav lugemine: "Töö nagu ette nähtud" – Androidi juurdepääsetavuse viivituse uurimine


Android O tapab kaks lindu ühe kiviga

Enne Android O-d ei saanud paroolihaldurite arendajad selle viivituse leevendamiseks palju teha. Selle põhjuseks on asjaolu, et paroolihaldurid ei saanud teada, millal automaatselt täidetav sisestusväli on ekraanil, ilma et oleks võimaldanud juurdepääsetavuse teenus neid pidevalt jälgida. Kuid tänu Android O uuele automaattäite raamistikule saavad need paroolihaldurid nüüd oma juurdepääsetavuse teenused lõpetada. Selle asemel paluvad rakendused, mis vajavad andmete sisestamist ise, automaattäite raamistikul helistada automaatse täitmise teenusele, mis saadab seejärel andmed. Tänu sellele uuele raamistikule ei muutu kasutajate jaoks parooli sisestamine palju lihtsamaks, kuna nad ei pea enam lootma täiendavat sisestusmeetodit, kuid paroolihaldurite juurdepääsetavuse teenuste lubamisega seotud viivitus on oluline minevik.

Ma tean, et mõne jaoks ei pruugi see tõsiasi olla murranguline, kuid ma arvasin, et kuna arutelu juurdepääsetavuse teenuse ümber oli nii vaikne, võinuks see teema olla väärt taaselustamist. Natuke mõtlemisainet sel nädalavahetusel!


Mida arvate Android O uuest automaatse täitmise raamistikust? Andke meile allolevates kommentaarides teada!