Novo ogrodje za samodejno izpolnjevanje v sistemu Android O bo rešilo dolgoletno težavo z zakasnitvijo, povezano s storitvami dostopnosti upraviteljev gesel.
Minilo je že en mesec, odkar je Google izdal prvi Android O Developer Preview (čas zagotovo hitro beži!) in tako kot pri vsaki novi različici Androida je tudi tukaj treba veliko poglobiti. Objavili smo veliko člankov že o Androidu O, vendar menim, da ena funkcija ni prejela pozornosti, ki bi si jo zaslužila: Ogrodje za samodejno izpolnjevanje.
Samodejno izpolnjevanje v sistemu Android O
Upraviteljev gesel je dandanes ogromno (čeprav smo delno odprtokodni KeePass), vendar šele z Androidom O Google resnično uradno podpira upravitelje gesel. Z Androidom O lahko aplikacije tretjih oseb zapolnijo seznam storitve samodejnega izpolnjevanja, ki komunicira z aplikacijami prek novega ogrodja za samodejno izpolnjevanje. Aplikacije, ki uporabljajo standard Pogled elementi bodo delovali z ogrodjem samodejnega izpolnjevanja takoj, čeprav lahko razvijalci izvedejo dodatne korake, da
optimiziraj za samodejno izpolnjevanje da zagotovite, da je mogoče kateri koli pogled po meri aplikacije samodejno izpolniti.Ko pride v fokus pogled, ki ga je mogoče samodejno izpolniti, bo ogrodje za samodejno izpolnjevanje sprožilo zahtevo za samodejno izpolnjevanje. Storitev samodejnega izpolnjevanja se odzove tako, da pošlje nazaj določene nabore podatkov za samodejno izpolnjevanje (kot so uporabniško ime, geslo, naslov, številke kreditne kartice itd.), ki jih lahko uporabnik nato izbere. Storitev samodejnega izpolnjevanja določi uporabnik v nastavitvah --> Aplikacije in obvestila --> Privzete aplikacije --> Aplikacija za samodejno izpolnjevanje.
Zgornja razlaga novega ogrodja za samodejno izpolnjevanje je le kratek povzetek dogajanja na strani aplikacije, ki zahteva, in na strani storitve samodejnega izpolnjevanja. Kar je najpomembnejše za vaše razumevanje tukaj, niso natančne podrobnosti o tem, kako samodejno izpolnjevanje deluje v sistemu Android O, ampak dejstvo, da aplikacije za upravljanje gesel same ne obravnavajo več zaznavanja, kdaj je pogled mogoče samodejno izpolniti.
Priporočeno branje: AgileBits prikazuje, kako bo videti ogrodje za samodejno izpolnjevanje Android O
Samodejno izpolnjevanje pred Androidom O
Primerjajte to s tem, kako je samodejno izpolnjevanje delovalo pred Androidom O. Preden so upravitelji gesel imeli kakršno koli uradno metodo za zaznavanje, kdaj je mogoče pogled samodejno izpolniti, vsak aplikacija je morala implementirati storitev dostopnosti za skeniranje trenutnega pogleda, da bi našla možnost samodejnega izpolnjevanja polja.
Uporaba storitve dostopnosti pa lahko povzroči precejšen zaostanek pod določenimi pogoji. Vendar pa je zamik, povezan s storitvijo dostopnosti vašega tipičnega upravitelja gesel, tako očiten, da so priljubljene storitve, kot je LastPass, celo strani za podporo glede vprašanja. Te strani za podporo vam običajno povedo, da je vaša edina rešitev za reševanje čezmernega zamika, ki ga povzročajo Storitev dostopnosti je onemogočanje storitve dostopnosti ali preklop na uporabo lastnega vnosa po meri metoda. V vsakem primeru izgubite kakršno koli možnost samodejnega izpolnjevanja.
Toda zakaj točno se zdi, da LastPassova storitev dostopnosti ali storitev dostopnosti katerega koli drugega upravitelja gesel povzroča toliko zamika? Razlog je v tem, kako morajo ti upravitelji gesel uporabljati storitve dostopnosti za odkrivanje vnosnih polj. Storitev dostopnosti lastnosti so opredeljeni v an Datoteka virov XML znotraj APK-ja, tako da lahko vidimo, kako storitev deluje, tako da dekompiliramo datoteko APK.
Spodaj je datoteka virov, vzeta iz dekompilacije LastPass APK:
"@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 />
Iz tega lahko zberemo naslednje informacije: LastPassova storitev dostopnosti zahteva dve vrsti dogodkov za spremljanje - TYPE_VIEW_FOCUSED in TYPE_WINDOW_CONTENT_CHANGED. To stori, ker mora vedeti, kdaj se vsebina aplikacije/spletne strani spremeni ali pride v fokus, nato pa pridobi vsebino trenutnega okna, da poišče morebitna polja za vnos gesla. Ker pa storitev to nenehno počne na dveh izjemno pogosto sproženih dogodkih dostopnosti, to povzroči zamik. Za bolj poglobljeno razpravo o tem, kako lahko storitve dostopnosti povzročijo zaostajanje, se sklicujem na svoj prejšnji članek o tej zadevi.
Priporočeno branje: "Delo, kot je predvideno" - Raziskava Androidovega zamika dostopnosti
Android O ubije dve muhi na en mah
Pred Androidom O razvijalci upraviteljev gesel niso mogli storiti veliko, da bi ublažili to zamudo. To je zato, ker upravitelji gesel niso mogli vedeti, kdaj je na zaslonu vnosno polje, ki ga je mogoče samodejno izpolniti, ne da bi omogočili storitvi dostopnosti, da jih stalno spremlja. Toda zahvaljujoč novemu ogrodju za samodejno izpolnjevanje v sistemu Android O lahko ti upravitelji gesel zdaj umaknejo svoje storitve dostopnosti. Namesto tega bodo aplikacije, ki same potrebujejo vnos podatkov, od ogrodja za samodejno izpolnjevanje zahtevale, da pokliče storitev za samodejno izpolnjevanje, ki bo nato poslala podatke. Zahvaljujoč temu novemu ogrodju ne bo samo vnos gesla za uporabnike veliko lažji, saj se jim ni več treba zanašati na dodatna metoda vnosa, vendar bo zakasnitev, povezana z omogočanjem storitev dostopnosti upraviteljev gesel, stvar preteklost.
Vem, da za nekatere od vas to dejstvo morda ni prelomno, vendar sem mislil, da bi bilo to temo morda vredno ponovno obuditi, ker je bila razprava o storitvi dostopnosti tako tiha. Samo nekaj hrane za razmislek ta vikend!
Kaj menite o novem ogrodju za samodejno izpolnjevanje za Android O? Sporočite nam v komentarjih spodaj!