Guía de prueba de Android 6.0

Android 6.0 te brinda la oportunidad de garantizar que tus apps funcionen con la próxima versión de la plataforma. Esta versión incluye varias APIs y cambios de comportamiento que pueden afectar tu app, como se describe en las secciones Descripción general de la API y Cambios de comportamiento. Al probar tu app con esta versión, hay algunos cambios específicos del sistema en los que debes enfocarte para garantizar que los usuarios tengan 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 las pruebas de estas funciones específicas, ya que podrían tener un alto impacto en el comportamiento de tu app:

Prueba de permisos

El nuevo modelo de Permisos cambia la forma 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 proporciona un control más detallado sobre las actividades de cada app, así como un mejor contexto para comprender por qué la app solicita un permiso específico. Los usuarios pueden otorgar o revocar los permisos otorgados 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, además, podría impedir que algunas de sus funciones funcionen, o bien que funcionen en un estado degradado.

Este cambio afecta a todas las apps que se ejecutan en la plataforma nueva, incluso a aquellas que no se orientan a esta versión. La plataforma proporciona 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> ...
  • 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, así como la experiencia del usuario y los flujos que proporcionas a los usuarios. Debes evaluar el uso de permisos actuales de tu app y comenzar a planificar los nuevos flujos que deseas ofrecer. La versión oficial de la plataforma proporciona comportamiento de compatibilidad, pero debes prever la actualización de tu app y no depender de estos comportamientos.

Identifica los permisos que tu app realmente necesita y usa, y luego busca las diversas rutas de acceso de código que usen los servicios protegidos por permisos. Puedes hacerlo mediante una combinación de pruebas en la plataforma nueva y análisis de código. Durante las pruebas, debes enfocarte en habilitar los permisos de tiempo de ejecución cambiando el targetSdkVersion de la app al nivel de API 23.

Realiza pruebas con varias combinaciones de permisos revocados y agregados para destacar los flujos del usuario que dependen de permisos. Cuando una dependencia no sea obvia ni lógica, debes considerar la opción de 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 el artículo para desarrolladores sobre cómo trabajar con permisos del sistema.

Prueba de los modos Descanso y App Standby

Las funciones de ahorro de energía de 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 o nulo a la red, suspensión de las tareas en segundo plano, suspensión de notificaciones, y alarmas y solicitudes de activación ignoradas. Para asegurarte de 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:

  1. Configura un dispositivo de hardware o virtual con una imagen del sistema de Android 7.0 (nivel de API 24).
  2. Conecta el dispositivo a tu equipo de desarrollo e instala tu app.
  3. Ejecuta tu app y déjala activa.
  4. 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
    
  5. 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:

  1. Configura un dispositivo de hardware o virtual con una imagen del sistema de Android 7.0 (nivel de API 24).
  2. Conecta el dispositivo a tu equipo de desarrollo e instala tu app.
  3. Ejecuta tu app y déjala activa.
  4. Ejecuta los siguientes comandos para simular que la app entra en modo en espera:
    $ adb shell am broadcast -a android.os.action.DISCHARGING
    $ adb shell am set-idle <packageName> true
    
  5. Simula la activación de tu app con el siguiente comando:
    $ adb shell am set-idle <packageName> false
  6. Observa el comportamiento de tu app al reactivarse. Asegúrate de que se recupere correctamente del modo en espera. En particular, debes comprobar si los trabajos en segundo plano y las notificaciones de tu app continúan funcionando como se espera.

Auto Backup for Apps e identificadores específicos del dispositivo

Si tu app conserva 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 automática de los datos del usuario.