Aumenta la disponibilidad de tu aplicación en todo tipo de dispositivos

Publicado por Alex Vanyo – Ingeniero de Relaciones con Desarrolladores

TL;DR: Elimine los requisitos de funciones innecesarios que impiden que los usuarios descarguen su aplicación en dispositivos que no admiten las funciones. ¡Automatice los requisitos de las funciones de seguimiento y maximice la disponibilidad de la aplicación con insignias!

Las funciones requeridas reducen la disponibilidad de la aplicación

es un elemento de manifiesto de aplicación que especifica si su aplicación depende de un funcionalidad de hardware o software. Por defecto, especifica que se requiere una característica. Para indicar que la función es opcional, debe agregar el atributo android:required=”false”.

Google Play filtros qué aplicaciones están disponibles para descargar según las funciones que necesita. Si el dispositivo del usuario no admite determinadas funciones de hardware o software, el usuario no puede descargar la aplicación que requiere esa función.

otro elemento del manifiesto de la aplicación, complica las cosas al solicitar implícitamente funcionalidad para permisos como CÁMARA o BLUETOOTH (consulte Permisos que implican requisitos de funcionalidad.). Incluso las instrucciones iniciales establecidas para sus actividades pueden hacer esto. ellos implícitamente requieren características del hardware.

El sistema determina la funcionalidad implícitamente requerida después de fusionar todos los módulos y dependencias, por lo que puede no estar claro qué funcionalidad requiere en última instancia su aplicación. Es posible que ni siquiera se dé cuenta de cuándo ha cambiado la lista de funciones requeridas. Por ejemplo, integrar una nueva dependencia en su aplicación podría introducir una nueva característica requerida. O la integración puede requerir permisos adicionales, y los permisos pueden introducir nuevas funciones que se requieren implícitamente.

Este comportamiento existe desde hace algún tiempo, pero Android ha cambiado mucho a lo largo de los años. Las aplicaciones de Android ahora funcionan en teléfonos, dispositivos plegables, tabletas, computadoras portátiles, automóviles, televisores y relojes, y estos dispositivos son más diversos que nunca. Algunos dispositivos no tienen servicio telefónico, algunos no tienen pantallas táctiles y algunos no tienen cámaras.

Las expectativas basadas en permisos también han cambiado. Con permisos de tiempo de ejecución, un La declaración en el manifiesto ya no garantiza que a su aplicación se le otorgará ese permiso. Los usuarios pueden optar por denegar el acceso al hardware en favor de otras formas de interactuar con la aplicación. Por ejemplo, en lugar de otorgar permiso a una aplicación para acceder a la ubicación del dispositivo, un usuario podría preferir buscar siempre una ubicación en particular.

Las aplicaciones bancarias no deberían requerir que su dispositivo tenga una cámara con enfoque automático para revisar cheques. ¡No deben especificar que la cámara debe ser delantera o trasera o que el dispositivo tiene cámara! Debería ser suficiente permitir al usuario cargar una imagen de un cheque desde otra fuente.

Las aplicaciones deben admitir la navegación con el teclado y la entrada del mouse por razones de accesibilidad y usabilidad, por lo que no debería ser necesario exigir estrictamente una pantalla táctil de hardware.

Las aplicaciones deben admitir orientación horizontal y vertical, por lo que no deberían requerir que la pantalla esté orientada horizontal o vertical. Por ejemplo, las pantallas integradas en los automóviles pueden tener una orientación horizontal fija. Aunque la aplicación admite orientación horizontal y vertical, es posible que requiera innecesariamente que el dispositivo admita el uso vertical, lo que excluiría dichos automóviles.

Determine las funciones que requiere su aplicación

puedes usar aapt2 A información de salida en su APK, incluidas las funciones solicitadas explícita e implícitamente. La lógica coincide con la forma en que Play Store filtra la disponibilidad de las aplicaciones.

insignia de volcado de aapt2

En Play Console también puedes comprobar qué dispositivos tienen bloqueado el acceso a tu aplicación.

Aumente la disponibilidad de la aplicación haciendo que las funciones sean opcionales

La mayoría de las aplicaciones no deberían requerir estrictamente funcionalidad de hardware y software. Hay pocas garantías de que el usuario permitirá que se utilice dicha funcionalidad en primer lugar, y los usuarios esperan poder utilizar todas las partes de su aplicación como mejor les parezca. Para aumentar la disponibilidad de su aplicación en todos los factores de forma:

    • Proporcione alternativas en caso de que la funcionalidad no esté disponible, asegurando que su aplicación no necesite la funcionalidad para funcionar.
    • Agregue android:required=”false” a lo existente etiqueta para marcar la función como no requerida (o eliminar la etiqueta por completo si la aplicación ya no usa una función).
    • Añade la etiqueta con android:required=”false” para la funcionalidad implícitamente requerida debido a la declaración permisos que implican requisitos de funcionalidad.

Evite regresiones con CI e insignias

Para protegerse contra regresiones causadas por agregar inadvertidamente un nuevo requisito de función que reduce la disponibilidad del dispositivo, automatice la tarea de determinar las funciones de su aplicación como parte de su sistema de compilación. Al almacenar el resultado de la insignia de la herramienta aapt2 en un archivo de texto y colocar el archivo en control de versiones, puede realizar un seguimiento de todos los permisos declarados y las funciones solicitadas explícita e implícitamente desde su apk universal final. Esto incluye todas las funciones y permisos incluidos por las dependencias transitivas, así como los suyos propios.

Puede automatizar las insignias como parte de su configuración de integración continua configurando tres tareas de Gradle para cada variante de su aplicación que desee validar. Usando la versión como ejemplo, cree estas tres tareas:

    • generateReleaseBadging: genera el archivo de insignia desde el APK universal utilizando el ejecutable aapt2. El resultado de esta tarea (la información de la insignia) se utiliza para las dos tareas siguientes.
    • updateReleaseBadging: copia el archivo de insignia generado en el directorio raíz del proyecto. El archivo se registra en el control de código fuente como un archivo. dorado archivo de insignia.
    • checkReleaseBadging: valida el archivo de insignia generado con el archivo de insignia dorada.

El elemento CI debe ejecutar checkReleaseBadging para verificar que el archivo de insignia dorada almacenado aún coincida con el archivo de insignia generado para el código actual. Si los cambios de código o las actualizaciones de dependencia han provocado que el archivo de insignia cambie de alguna manera, el elemento de CI falla.

La captura de pantalla del elemento de CI falló debido a que se agregó un nuevo permiso y se solicitó una funcionalidad sin actualizar el archivo de insignia.CI falló debido a que se agregó un nuevo permiso y se solicitó una funcionalidad sin actualizar el archivo de insignia.

Cuando los cambios sean intencionales, ejecute updateReleaseBadging para actualizar el archivo de la insignia dorada y vuelva a verificarlo en el control de fuente. Luego, este cambio surgirá en la revisión del código para que los revisores validen que se esperan cambios en la insignia.

Captura de pantalla que muestra el archivo de insignia dorada actualizado para su revisión con permisos adicionales y funcionalidad implícita requerida.Archivo de insignia dorada actualizado para su revisión con permisos adicionales y funcionalidad requerida implícita.

Las credenciales de CI automatizadas protegen contra cambios que pueden requerir inadvertidamente una nueva característica, reduciendo así la disponibilidad de la aplicación.

Para obtener un ejemplo completo y funcional de un sistema CI que verifica el archivo de insignia, consulte la configuración en el archivo Ahora en Android aplicación.

Mantener características opcionales

Los dispositivos Android son cada vez más diversos y los usuarios esperan una gran experiencia de su aplicación de Android independientemente del tipo de dispositivo que utilicen. Si bien algunas características de software o hardware pueden ser esenciales para que su aplicación funcione, en muchos casos no deberían ser estrictamente necesarias, lo que impediría innecesariamente que algunos usuarios descarguen su aplicación.

Utilizar el insignias salida de aapt2 para verificar qué funciones requiere su aplicación y use Play Console para verificar qué requisitos del dispositivo le impiden descargar su aplicación. Puede verificar automáticamente la insignia de su aplicación en CI y detectar regresiones.

Línea de fondo: Si no necesita absolutamente una función para que funcione toda la aplicación, hágala opcional para garantizar que su aplicación esté disponible para tantos dispositivos y usuarios como sea posible.

Obtenga más información consultando nuestro guía para desarrolladores.

Compruebe también

en vivo desde Droidcon, incluida la mayor actualización de Gemini en Android Studio y más lanzamientos del SDK de Android.

Acabamos de lanzar nuestro episodio de otoño de #TheAndroidShow en YouTube etcétera desarrollador.android.comy esta vez …

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *