Android 6.0 te brinda la oportunidad de garantizar que tus apps funcionen con la próxima versión de la plataforma. En esta versión, se incluyen varias APIs y cambios de comportamiento que pueden afectar tu app, como se describe en Descripción general de la API y Cambios en el comportamiento. Al probar tu app con esta versión, debes centrarte en algunos cambios específicos del sistema para garantizar que los usuarios disfruten de una buena experiencia.
En esta guía, se describen qué y cómo probar las funciones de Android 6.0 con tu app. Debes priorizar la prueba de estas funciones específicas, ya que podrían tener un alto impacto en el comportamiento de la app:
Prueba de permisos
El nuevo modelo de permisos cambia el modo en que el usuario asigna permisos a tu app. En lugar de otorgar todos los permisos durante el procedimiento de instalación, tu app debe solicitar al usuario los permisos individuales durante el tiempo de ejecución. Para los usuarios, este comportamiento ofrece un control más detallado de las actividades de cada app y un mejor contexto para comprender la razón por la cual la app solicita un permiso específico. Los usuarios pueden conceder o revocar los permisos concedidos a una app de forma individual en cualquier momento. Es muy probable que esta función de la versión tenga un impacto en el comportamiento de tu app y que ocasione problemas de funcionamiento de algunas funciones de esta o lo impida.
Este cambio afecta a todas las apps que se ejecutan en la plataforma nueva, incluso a aquellas que no tienen como objetivo la nueva versión de la plataforma. La plataforma ofrece un comportamiento de compatibilidad limitada para las apps heredadas, pero debes comenzar a planificar ahora la migración de tu app al nuevo modelo de permisos, con el objetivo de publicar una versión actualizada de tu app cuando se lance la plataforma oficial.
Sugerencias para pruebas
Usa las siguientes sugerencias para pruebas como ayuda para planificar y ejecutar las pruebas de tu app con el nuevo comportamiento de permisos.
- Identifica los permisos actuales de tu app y las rutas de acceso de códigos relacionadas.
- Prueba los flujos del usuario en los datos y servicios protegidos por permisos.
- Realiza pruebas con varias combinaciones de permisos concedidos o revocados.
- Usa la herramienta de
adb
para administrar los permisos desde la línea de comandos:- Enumera los permisos y estados por grupo:
adb shell pm list permissions -d -g
- Otorga o revoca uno o más permisos con la siguiente sintaxis:
adb shell pm [grant|revoke] <permission.name> ...
- Enumera los permisos y estados por grupo:
- Analiza tu app en busca de servicios que usen permisos.
Estrategia de prueba
El cambio en los permisos afecta la estructura y el diseño de tu app, además de la experiencia del usuario y los flujos que proporcionas a los usuarios. Debes evaluar el uso de los permisos actuales de tu app y comenzar a planificar los nuevos flujos que deseas ofrecer. La versión oficial de la plataforma proporciona un comportamiento de compatibilidad, pero debes prever la actualización de tu app y no depender de estos comportamientos.
Identifica los permisos que tu app verdaderamente necesita y usa, y luego busca las diversas rutas de acceso de códigos que usan los servicios protegidos por permisos. Puedes realizar esto mediante una combinación de pruebas en la plataforma nueva y análisis de códigos. Al realizar las pruebas, debes centrarte en incluir permisos de tiempo de ejecución cambiando targetSdkVersion
de la app al nivel de API 23.
Realiza pruebas con diversas combinaciones de permisos revocados y agregados, a fin de destacar los flujos del usuario que dependen de permisos. Cuando una dependencia no sea obvia ni lógica, debes considerar refactorizar o compartimentar ese flujo para eliminar la dependencia o aclarar por qué se necesita el permiso.
Para obtener más información sobre el comportamiento de los permisos de tiempo de ejecución, las pruebas y las prácticas recomendadas, consulta Cómo trabajar con permisos del sistema para desarrolladores.
Prueba de los modos Descanso y App Standby
Las funciones de ahorro de energía de los modos Descanso y App Standby limitan la cantidad de procesamiento en segundo plano que puede realizar tu app cuando un dispositivo se encuentra en estado inactivo o mientras tu app no está en foco. Entre las restricciones que el sistema puede imponer en las apps, se incluyen el acceso limitado a la red o la denegación de acceso, la suspensión de tareas en segundo plano, la suspensión de notificaciones, y las alarmas y solicitudes de reactivación ignoradas. Para garantizar que tu app tenga un comportamiento correcto con estas optimizaciones de ahorro de energía, debes probar tu app simulando estos estados de bajo consumo.
Cómo probar tu app con el modo Descanso
Para probar el modo Descanso con tu app, realiza lo siguiente:
- Configura un dispositivo de hardware o virtual con una imagen del sistema de Android 7.0 (nivel de API 24).
- Conecta el dispositivo a tu equipo de desarrollo e instala tu app.
- Ejecuta tu app y déjala activa.
- Simula la activación del modo Descanso en el dispositivo ejecutando los siguientes comandos:
$ adb shell dumpsys battery unplug $ adb shell dumpsys deviceidle step $ adb shell dumpsys deviceidle -h
- Observa el comportamiento de tu app cuando se reactive el dispositivo. Asegúrate de que se recupere correctamente cuando el dispositivo salga del modo Descanso.
Prueba de apps con App Standby
Para probar el modo App Standby con tu app, realiza lo siguiente:
- Configura un dispositivo de hardware o virtual con una imagen del sistema de Android 7.0 (nivel de API 24).
- Conecta el dispositivo a tu equipo de desarrollo e instala tu app.
- Ejecuta tu app y déjala activa.
- Simula la activación del modo App Standby en la app ejecutando los siguientes comandos:
$ adb shell am broadcast -a android.os.action.DISCHARGING $ adb shell am set-idle <packageName> true
- Simula la activación de tu app con el siguiente comando:
$ adb shell am set-idle <packageName> false
- Observa el comportamiento de tu app al reactivarse. Asegúrate de que se recupere correctamente del modo App Standby. En particular, debes comprobar si las tareas en segundo plano y las notificaciones de tu app continúan funcionando de la manera esperada.
Auto Backup for Apps e identificadores específicos del dispositivo
Si tu app continúa teniendo algún identificador específico del dispositivo, como el ID de registro de Google Cloud Messaging, en el almacenamiento interno, asegúrate de seguir las prácticas recomendadas para excluir la ubicación de almacenamiento de la copia de seguridad automática, como se describe en Cómo crear una copia de seguridad de los datos del usuario con la copia de seguridad automática.