El nuevo Marco de Autocompletar en Android O resolverá un problema de retraso de larga data asociado con los Servicios de Accesibilidad de los administradores de contraseñas.
Ya ha pasado un mes desde que Google lanzó el primera vista previa para desarrolladores de Android O (¡El tiempo pasa rápido!) y, como ocurre con cualquier versión nueva de Android, hay mucho en qué profundizar. hemos publicado muchos artículos Ya hablamos de Android O, pero hay una característica que creo que no ha recibido la atención que merece: Marco de autocompletar.
Autocompletar en Android O
Los administradores de contraseñas abundan hoy en día (aunque estamos parcial al KeePass de código abierto), pero es sólo con Android O que Google realmente admite oficialmente los administradores de contraseñas. Con Android O, las aplicaciones de terceros pueden ocupar el lugar de un servicio de autocompletar, que se comunica con las aplicaciones a través del nuevo Autofill Framework. Aplicaciones que usan estándar Vista Los elementos funcionarán con Autofill Framework listo para usar, aunque hay pasos adicionales que los desarrolladores pueden seguir para
optimizar para autocompletar para garantizar que cualquiera de las Vistas personalizadas de la aplicación se pueda completar automáticamente.Cuando una Vista que se puede autocompletar se enfoca, Autofill Framework invocará una solicitud de autocompletar. El servicio de autocompletar responde devolviendo ciertos conjuntos de datos de Autocompletar (como el nombre de usuario, la contraseña, la dirección, los números de tarjetas de crédito, etc.) que luego el usuario puede seleccionar. El servicio de autocompletar lo especifica el usuario en Configuración --> Aplicaciones y notificaciones --> Aplicaciones predeterminadas --> Aplicación de autocompletar.
La explicación anterior del nuevo Marco de Autocompletar es solo un breve resumen de lo que sucede tanto en la aplicación solicitante como en el servicio de autocompletar. Lo más importante para su comprensión aquí no son los detalles exactos de cómo funciona el autocompletar en Android O, sino el hecho de que el Las aplicaciones de administrador de contraseñas ya no detectan cuándo se puede completar automáticamente una vista..
Lectura recomendada: AgileBits muestra cómo se verá el marco de autocompletar de Android O
Autocompletar antes de Android O
Compare eso con cómo funcionaba el autocompletar antes de Android O. Antes de que los administradores de contraseñas tuvieran algún tipo de método oficial para detectar cuándo una Vista podía completarse automáticamente, cada La aplicación tuvo que implementar un servicio de accesibilidad para escanear la vista actual y encontrar archivos autocompletables. campos.
El uso de un Servicio de Accesibilidad, sin embargo, puede resulta en un retraso considerable bajo ciertas condiciones. Sin embargo, el retraso asociado con el servicio de accesibilidad de su administrador de contraseñas típico es tan evidente que servicios populares como LastPass incluso tienen paginas de soporte sobre el tema. Estas páginas de soporte generalmente le indican que su único recurso para lidiar con el retraso excesivo causado por su El Servicio de Accesibilidad es desactivar el Servicio de Accesibilidad o cambiar al uso de su propia entrada personalizada. método. De cualquier manera, perderá cualquier tipo de capacidad de autocompletar.
Pero, ¿por qué exactamente el Servicio de Accesibilidad de LastPass, o el Servicio de Accesibilidad de cualquier otro administrador de contraseñas, parece causar tanto retraso? La razón se debe a cómo estos administradores de contraseñas tienen que utilizar los Servicios de Accesibilidad para detectar campos de entrada. Un servicio de accesibilidad atributos se definen en un archivo de recursos XML dentro del APK, para que podamos ver cómo funciona el Servicio descompilando el archivo APK.
A continuación se muestra el archivo de recursos extraído de la descompilación del APK de LastPass:
"@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 />
De esto, podemos deducir la siguiente información: El servicio de accesibilidad de LastPass solicita dos tipos de eventos para monitorear: TYPE_VIEW_FOCUSED y TYPE_WINDOW_CONTENT_CHANGED. Lo hace porque necesita saber cuándo el contenido de una aplicación/página web cambia o se enfoca, y luego recupera el contenido de la ventana actual para buscar los campos de entrada de contraseña. Pero dado que el servicio hace esto constantemente en dos eventos de accesibilidad que se activan con mucha frecuencia, se produce un retraso. Para una discusión más profunda sobre cómo los Servicios de Accesibilidad pueden causar retrasos, le remito a mi artículo anterior sobre el tema.
Lectura recomendada: "Trabajar según lo previsto": una exploración del retraso en la accesibilidad de Android
Android O mata dos pájaros de un tiro
Antes de Android O, no había mucho que los desarrolladores de administradores de contraseñas pudieran hacer para mitigar este retraso. Esto se debe a que los administradores de contraseñas no tenían forma de saber cuándo un campo de entrada autocompletable estaba en la pantalla sin permitir que un Servicio de Accesibilidad los monitoreara constantemente. Pero gracias al nuevo Autofill Framework en Android O, estos administradores de contraseñas ahora pueden retirar sus Servicios de Accesibilidad. En cambio, las aplicaciones que necesitan ingresar datos solicitarán que Autofill Framework llame al servicio de autocompletar que luego enviará los datos. Gracias a este nuevo marco, la introducción de contraseñas no sólo será mucho más fácil para los usuarios, sino que ya no tendrán que depender de un método de entrada adicional, pero el retraso asociado con la habilitación de los Servicios de Accesibilidad de los administradores de contraseñas será cosa del pasado. pasado.
Sé que para algunos de ustedes, este hecho puede no ser innovador, pero pensé que, dado que la discusión sobre el Servicio de Accesibilidad fue tan silenciosa, podría haber valido la pena reavivar este tema. ¡Solo algo para reflexionar este fin de semana!
¿Qué opinas del nuevo marco de autocompletar de Android O? ¡Háganos saber en los comentarios a continuación!