Android O's Autofill Framework konečně vyřeší dlouhodobý problém se správci hesel

click fraud protection

Nový Autofill Framework v Androidu O vyřeší dlouhotrvající problém se zpožděním spojený se službami přístupnosti správců hesel.

Už je to měsíc, co Google vydal první Android O Developer Preview (čas jistě rychle letí!) a stejně jako u každé nové verze Androidu – je toho hodně, do čeho se dá kopat. Zveřejnili jsme spousta článků o Androidu O, ale je tu jedna funkce, o které mám pocit, že se jí ve skutečnosti nedostalo takové pozornosti, jakou by si zasloužila: Rámec automatického vyplňování.

Automatické vyplňování v systému Android O

Správci hesel jsou v dnešní době desetník (i když jsme částečné k open-source KeePass), ale pouze se systémem Android O Google skutečně oficiálně podporuje správce hesel. S Androidem O mohou aplikace třetích stran plnit roli služby automatického vyplňování, která komunikuje s aplikacemi prostřednictvím nového rozhraní Autofill Framework. Aplikace, které používají standardní Pohled prvky budou fungovat s Autofill Frameworkem hned po vybalení, ačkoli existují další kroky, které mohou vývojáři podniknout 

optimalizovat pro automatické vyplňování abyste zajistili, že jakékoli z vlastních zobrazení aplikace lze automaticky vyplnit.

Když se automaticky vyplnitelný pohled dostane do centra pozornosti, Autofill Framework vyvolá požadavek na automatické vyplňování. Služba automatického vyplňování reaguje odesláním určitých datových sad automatického vyplňování (jako je uživatelské jméno, heslo, adresa, čísla kreditních karet atd.), které si uživatel poté může vybrat. Službu automatického vyplňování určuje uživatel v Nastavení --> Aplikace a oznámení --> Výchozí aplikace --> Aplikace Automatické vyplňování.

Aplikace automatického vyplňování v systému Android O. Kredity: Poslední průchod.

Vysvětlení nového rámce automatického vyplňování výše je pouze stručným shrnutím toho, co se děje na konci žádající aplikace i na konci služby automatického vyplňování. Nejdůležitější pro vaše pochopení zde nejsou přesné podrobnosti o tom, jak funguje automatické vyplňování v systému Android O, ale skutečnost, že samotné aplikace pro správu hesel již nezvládají zjišťování, kdy lze zobrazení automaticky vyplnit.


Doporučená četba: AgileBits ukazuje, jak bude vypadat rozhraní automatického vyplňování systému Android O


Automatické vyplňování před Androidem O

Porovnejte to s tím, jak automatické vyplňování fungovalo před Androidem O. Než měli správci hesel nějakou oficiální metodu, jak zjistit, kdy lze zobrazení automaticky vyplnit, každý z nich aplikace musela implementovat Službu usnadnění pro skenování aktuálního pohledu, aby nalezla možnost automatického vyplňování pole.

Použití služby usnadnění však může mít za následek značné zpoždění za určitých podmínek. Zpoždění spojené se službou přístupnosti vašeho typického správce hesel je však tak zřejmé, že oblíbené služby, jako je LastPass, dokonce stránky podpory nahoru ohledně problému. Tyto stránky podpory vám obvykle řeknou, že je vaším jediným prostředkem řešení nadměrného zpoždění způsobeného jejich Služba usnadnění slouží buď k deaktivaci služby usnadnění, nebo k přepnutí na používání vlastního vlastního vstupu metoda. V každém případě ztratíte jakoukoli schopnost automatického vyplňování.

Ale proč přesně se zdá, že služba přístupnosti LastPass nebo jakákoli jiná služba přístupnosti správce hesel způsobuje tak velké zpoždění? Důvodem je to, jak tito správci hesel musí využívat služby usnadnění k detekci vstupních polí. Služba přístupnosti atributy jsou definovány v an Zdrojový soubor XML v rámci souboru APK, takže dekompilací souboru APK můžeme vidět, jak služba funguje.

Níže je zdrojový soubor převzatý z dekompilace 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 />

Z toho můžeme vyčíst následující informace: Služba usnadnění přístupu LastPass vyžaduje ke sledování dva typy událostí – TYPE_VIEW_FOCUSED a TYPE_WINDOW_CONTENT_CHANGED. Dělá to proto, že potřebuje vědět, kdy se obsah aplikace/webové stránky změní nebo se stane fokusem, a poté načte aktuální obsah okna, aby hledal případná pole pro zadání hesla. Ale protože to služba neustále dělá na dvou extrémně často spouštěných událostech usnadnění, vede to ke zpoždění. Pro podrobnější diskusi o tom, jak mohou služby usnadnění přístupu způsobit zpoždění, odkazuji na svůj předchozí článek na toto téma.


Doporučená četba: „Working as Intended“ – Průzkum zpoždění dostupnosti Androidu


Android O zabije dva ptáky jedním kamenem

Před Androidem O nebylo ve skutečnosti mnoho vývojářů správců hesel, kteří by mohli udělat pro zmírnění tohoto zpoždění. Je to proto, že správci hesel neměli žádný způsob, jak zjistit, kdy je na obrazovce automaticky vyplnitelné vstupní pole, aniž by umožnili službě usnadnění, aby je neustále sledovala. Ale díky novému rozhraní Autofill Framework v Androidu O mohou nyní tito správci hesel vyřadit své služby usnadnění. Místo toho aplikace, které samy potřebují zadávání dat, požádají rozhraní Autofill Framework, aby zavolalo službu automatického vyplňování, která pak data odešle. Díky tomuto novému rámci bude nejen pro uživatele mnohem jednodušší zadávání hesla, protože se již nebudou muset spoléhat na další metoda zadávání, ale zpoždění spojené s aktivací Služeb přístupnosti správců hesel bude věc minulost.

Vím, že pro některé z vás nemusí být tato skutečnost převratná, ale myslel jsem si, že vzhledem k tomu, že diskuze kolem Služby přístupnosti byla tak němá, by toto téma možná stálo za to znovu rozdmýchat. Jen něco k zamyšlení o tomto víkendu!


Co si myslíte o novém systému automatického vyplňování systému Android O? Dejte nám vědět v komentářích níže!