Cómo analizar el uso de batería con Battery Historian

La herramienta Battery Historian proporciona estadísticas sobre el consumo de batería de un dispositivo a lo largo del tiempo. En todo el sistema, la herramienta visualiza los eventos relacionados con la batería en una representación HTML de los registros del sistema. Cuando se analizan apps de manera específica, la herramienta proporciona una variedad de datos que pueden ayudarte a identificar los comportamientos que consumen demasiada batería.

En este documento, se describen algunas de las formas en las que puedes usar Battery Historian para conocer los patrones de consumo de batería. Al principio, se explica cómo leer los datos del sistema que brinda Battery Historian. Luego, se describe cómo usar Battery Historian para diagnosticar y solucionar los comportamientos de tu app relacionados con el consumo de batería. Por último, se brindan sugerencias sobre escenarios en los que Battery Historian podría ser particularmente útil.

Usa la vista de todo el sistema

La herramienta Battery Historian proporciona una visualización de todo el sistema de diferentes comportamientos de las apps y el sistema, junto con su correlación con el consumo de batería en el tiempo. La imagen de la Figura 1 puede ayudarte a identificar y diagnosticar los problemas de uso de batería de tu app.

Visualización de Battery Historian de eventos de todo el sistema que afectan el consumo de batería.
Figura 1. Visualización de Battery Historian de eventos de todo el sistema que afectan el consumo de batería.

La línea negra horizontal que tiende hacia abajo representa el nivel de batería, que se mide sobre el eje Y, y es la que más nos interesa. Por ejemplo, al comienzo de la línea de nivel de batería, aproximadamente a las 6:50 a.m., la imagen muestra una caída relativamente pronunciada en el nivel de batería.

La Figura 2 proporciona un primer plano de esa parte de la imagen.

Primer plano de la cronología de Battery Historian de 6:50 a.m. a 7:20 a.m.
Figura 2. Primer plano de la cronología de Battery Historian de 6:50 a.m. a 7:20 a.m.

Al comienzo de la línea de nivel de batería, a medida que la batería baja abruptamente, la imagen muestra tres procesos: la CPU está funcionando, una app obtuvo un bloqueo de activación y la pantalla está encendida. De esta manera, Battery Historian te ayuda a comprender qué eventos ocurren cuando el consumo de batería es mayor. Luego, puedes trabajar sobre esos comportamientos en tu app o investigar si puedes implementar optimizaciones.

La visualización de todo el sistema también puede proporcionar otras pistas. Por ejemplo, si muestra que la radio móvil se activa y se desactiva con frecuencia, puedes optimizar este comportamiento con las APIs de intelligent scheduling, como JobScheduler o Firebase Job Dispatcher.

En la siguiente sección, se explica cómo investigar el comportamiento y los eventos específicos de tu app.

Consulta datos específicos de la app

Además de los macrodatos que brinda la vista de todo el sistema, Battery Historian también cuenta con tablas y datos específicos sobre cada app que se ejecuta en tu dispositivo. Estos son algunos de los datos de la tabla:

  • Uso de batería del dispositivo estimado de la app
  • Información de red
  • Bloqueos de activación
  • Servicios
  • Información sobre procesos

Las tablas proporcionan dos dimensiones de datos sobre tu app. En primer lugar, puedes ver cómo se posiciona tu app con respecto a otras en cuanto al consumo de batería. Para ello, haz clic en la tabla Device Power Estimates en Tables. En este ejemplo, se examina una app ficticia llamada Pug Power.

Investiga qué apps consumen más batería.
Figura 3. Investiga qué apps consumen más batería.

En la tabla de la figura 3, se revela que Pug Power es el noveno consumidor más grande de batería de este dispositivo y la tercera app más grande que no forma parte del SO. Estos datos sugieren que la app debe investigarse más a fondo.

Para buscar los datos de una app específica, ingresa el nombre del paquete en el segundo de los dos menús desplegables que se ubican debajo de App Selection, en el sector izquierdo de la visualización.

Ingresa una app específica para ver sus datos.
Figura 4. Ingresa una app específica para ver sus datos.

Cuando seleccionas una app específica, las siguientes categorías de visualización cambiarán para mostrarte sus datos, en lugar de los datos del sistema:

  • SyncManager
  • Proceso en primer plano
  • Bloqueo de activación del espacio del usuario
  • App principal
  • JobScheduler
  • Procesos del administrador de actividades

Las visualizaciones de SyncManager y JobScheduler revelan de inmediato si la app realiza sincronizaciones o ejecuta tareas con mayor frecuencia que la necesaria. De esta manera, te permiten detectar oportunidades para optimizar el comportamiento de tu app y mejorar el rendimiento de la batería.

También puedes obtener más datos de visualización específicos de la app con Bloqueo de activación del espacio del usuario. Para incluir esta información en el informe de errores, ingresa el siguiente comando en la ventana de tu terminal:

$ adb shell dumpsys batterystats --enable full-wake-history

En las Figuras 5 y 6, se muestran los datos de Pug Power. En la Figura 5, se incluyen los datos específicos de la app, mientras que en la 6 se incluyen los datos tabulares correspondientes.

Visualización de datos de la app ficticia Pug Power.
Figura 5. Visualización de datos de la app ficticia Pug Power.


Datos tabulares de la app ficticia Pug Power

Figura 6. Datos tabulares de la app ficticia Pug Power.

La visualización no brinda información evidente. La línea de JobScheduler indica que la app no tiene tareas programadas; la línea de SyncManager muestra que no realizó ninguna sincronización.

Sin embargo, el análisis del segmento Bloqueos de activación de los datos tabulares revela que Pug Power suma una hora de bloqueos de activación. Este comportamiento inusual y costoso podría ser la razón del elevado consumo de batería de la app. Esta información ayuda al desarrollador a enfocarse en las áreas que requieren optimización. En este caso, ¿por qué la app adquiere tanto tiempo de bloqueo de activación y cómo puede el desarrollador mejorar este comportamiento?

Otros casos en los que Battery Historian resulta útil

Battery Historian puede ayudarte a identificar oportunidades para mejorar el comportamiento relacionado con el consumo de batería en muchos otros casos. Por ejemplo, puede indicarte si tu app hace lo siguiente:

  • Inicia alarmas de activación con demasiada frecuencia (cada 10 segundos o menos).
  • Mantiene activado un servicio de GPS.
  • Programa tareas cada 30 segundos o menos.
  • Programa sincronizaciones cada 30 segundos o menos.
  • Usa la radio con más frecuencia de la esperada.