Cómo realizar pruebas en torno a problemas relacionados con la batería

Las funciones de administración de batería incluidas en Android 9 (nivel de API 28) afectan a todas las apps que se ejecutan en esta versión, independientemente de si se orientaron a ella o no. Es importante que te asegures de que tu app funcione correctamente en estos dispositivos.

Prueba los principales casos de uso de tu app en distintas condiciones para ver cómo las funciones de administración de batería interactúan entre sí. Puedes usar los comandos de Android Debug Bridge (adb) para activar y desactivar algunas de las funciones.

Comandos Android Debug Bridge (adb)

Para probar varias de las funciones de administración de batería, puedes usar los comandos de shell de adb.

En Pruebas con los modos Descanso y App Standby, puedes obtener información sobre el uso de adb para poner el dispositivo en Descanso.

Intervalos de App Standby

Puedes usar adb para asignar tu app a un intervalo App Standby de forma manual. Para cambiar el intervalo de una app, primero simula la desconexión del dispositivo con este comando:

$ adb shell dumpsys battery unplug

Usa el siguiente comando para asignar tu app a un intervalo de Standby:

$ adb shell am set-standby-bucket packagename active|working_set|frequent|rare

También puedes usar el comando anterior para configurar varios paquetes de una sola vez:

$ adb shell am set-standby-bucket package1 bucket1 package2 bucket2...

Para comprobar en qué intervalo se encuentra una app, ejecuta lo siguiente:

$ adb shell am get-standby-bucket packagename

Si no pasas un parámetro de packagename, el comando enumerará los intervalos de todas las apps. Una app también puede identificar su intervalo en el tiempo de ejecución llamando al nuevo método UsageStatsManager.getAppStandbyBucket().

Restricciones en segundo plano

Para aplicar restricciones en segundo plano de forma manual, ejecuta este comando:

$ adb shell cmd appops set packagename RUN_ANY_IN_BACKGROUND ignore

Para quitar restricciones en segundo plano, ejecuta este comando:

$ adb shell cmd appops set packagename RUN_ANY_IN_BACKGROUND allow

Ahorro de batería

Existen varios comandos para probar la manera en que se comporta tu app en condiciones de bajo nivel de batería.

Para simular un dispositivo desconectado, usa este comando:

$ adb shell dumpsys battery unplug

Para probar el comportamiento del dispositivo en modo de Ahorro de batería, usa este comando:

$ adb shell settings put global low_power 1

Una vez que hayas finalizado la prueba, puedes deshacer la configuración manual del dispositivo con este comando:

$ adb shell dumpsys battery reset