Genera perfiles del uso de la batería con Batterystats y Battery Historian

En esta explicación se muestra el uso básico y el flujo de trabajo de la herramienta Batterystats y la secuencia de comandos Battery Historian.

Batterystats es una herramienta del marco de trabajo de Android que recopila datos sobre la batería en tu dispositivo. Puedes usar adb para volcar los datos sobre la batería recopilados en tu máquina de desarrollo y crear un informe que puedas analizar con Battery Historian. Battery Historian convierte el informe de Batterystats en una visualización HTML que puedes ver en tu navegador.

Usos recomendados:

  • Te muestra cómo los procesos usan corriente de la batería y en qué lugar.
  • Identifica las tareas en tu app que podrías aplazar o incluso quitar para mejorar la duración de la batería.

Nota: Para usar Batterystats y Battery Historian, necesitas un dispositivo móvil con Android 5.0 o versiones posteriores con USB Debugging habilitado.

Cómo instalar Battery Historian

El modo más sencillo de instalar Battery Historian es con Docker. Si deseas conocer métodos de instalación alternativos, incluido el desarrollo a partir del código fuente, consulta Read Me en la página de GitHub del proyecto. Para completar la instalación con Docker, sigue estos pasos:

  1. Instala Docker Community Edition según las instrucciones en el sitio web de Docker.
  2. Para confirmar que Docker esté instalado correctamente, abre la línea de comandos y escribe el siguiente comando:
        docker run hello-world

    Si Docker está instalado correctamente, verás un resultado como el siguiente:

        Unable to find image 'hello-world:latest' locally
        latest: Pulling from library/hello-world
        78445dd45222: Pull complete
        Digest:
        sha256:c5515758d4c5e1e838e9cd307f6c6a0d620b5e07e6f927b07d05f6d12a1ac8d7
        Status: Downloaded newer image for hello-world:latest
    
        Hello from Docker!
        This message shows that your installation appears to be working correctly.
    
        To generate this message, Docker took the following steps:
         1. The Docker client contacted the Docker daemon.
         2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
         3. The Docker daemon created a new container from that image which runs the
            executable that produces the output you are currently reading.
         4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal.
  3. Usa el siguiente comando para ejecutar la imagen de Battery Historian:
        docker run -p port_number:9999 gcr.io/android-battery-historian/stable:3.0 --port 9999
        

    Battery Historian usará el puerto que hayas especificado con port_number.

    Nota: Si usas una máquina Windows, es posible que necesites habilitar la visualización en BIOS. Consulta la documentación de la placa madre para obtener más información sobre cómo habilitar la virtualización. Si puedes ejecutar Android Emulator, quiere decir que la virtualización ya está habilitada.

  4. Navega a Battery Historian en tu navegador para confirmar que se esté ejecutando. La dirección varía según tu sistema operativo:
    Para Linux y Mac
    Battery Historian está disponible en http://localhost:port_number.
    Para Windows
    Una vez que abres Docker, te indica la dirección IP de la máquina que lo está usando. Por ejemplo, si la dirección IP es 123.456.78.90, Battery Historian está disponible en http://123.456.78.90:port_number

    Verás la página de inicio de Battery Historian, en la que puedes subir y ver las estadísticas de la batería.

    Figura 1: Página de inicio de Battery Historian

Cómo recopilar datos con Batterystats

Si deseas recopilar datos de tu dispositivo con Batterystats y abrirlos en Battery Historian, haz lo siguiente:

  1. Conecta el dispositivo móvil a la computadora.
  2. Desde una ventana de terminal, cierra el servidor adb en ejecución.
        adb kill-server
        
  3. Reinicia adb y verifica si hay dispositivos conectados.
        adb devices
        

    Deberías ver el dispositivo en la lista, de manera similar al resultado de ejemplo a continuación.

    Figura 2: Resultado de adb devices, en el que se muestra un dispositivo conectado

    Si no ves ningún dispositivo, asegúrate de que el teléfono esté conectado y de que USB Debugging esté activado. A continuación, cierra adb y reinícialo.

  4. Restablece la recopilación de datos sobre la batería.
        adb shell dumpsys batterystats --reset
        

    El dispositivo siempre recopila estadísticas de la batería y demás información de depuración en segundo plano. El restablecimiento borra los datos antiguos recopilados sobre la batería. Si no lo reinicias, el resultado será enorme.

  5. Desconecta el dispositivo de la computadora de manera que solo use corriente de la batería del dispositivo.
  6. Juega con la app y realiza acciones sobre las que quieras obtener datos. Por ejemplo, desconéctala de Wi-Fi y envía datos a la nube.
  7. Vuelve a conectar el teléfono.
  8. Asegúrate de que se reconozca el teléfono:
        adb devices
        
  9. Vuelca todos los datos de la batería. Es posible que esta acción demore unos minutos:
        adb shell dumpsys batterystats > [path/]batterystats.txt
        

    El archivo batterystats.txt se crea en el directorio que especificas con el argumento de ruta de acceso opcional. Si no especificas una ruta de acceso, el archivo se crea en el directorio principal.

  10. Crea un informe a partir de datos sin procesar.
    Para dispositivos con Android 7.0 y versiones posteriores:
        adb bugreport > [path/]bugreport.zip
        
    Para dispositivos con Android 6.0 y versiones inferiores:
        adb bugreport > [path/]bugreport.txt
        

    El informe de errores puede tardar varios minutos en completarse. No desconectes el dispositivo ni canceles el proceso hasta que se complete.

    Al igual que con batterystats.txt, estos archivos se crean en el directorio que especificas con el argumento de ruta de acceso opcional. Si no especificas una ruta de acceso, se crean en el directorio principal.

  11. Si todavía no se está ejecutando, usa el siguiente comando para ejecutar Battery Historian:
        docker --run -p port_number:9999 gcr.io/android-battery-historian:2.1 --port 9999
        
  12. Si deseas ver tus datos en Battery Historian, abre Battery Historian en tu navegador. (En Mac y Linux, Battery Historian se ejecuta en http://localhost:port_number. En Windows, Battery Historian se ejecuta en http://your_IP_address:port_number.)
  13. Haz clic en Browse y, luego, selecciona el archivo de informe de errores que creaste anteriormente.
  14. Haz clic en Submit. Battery Historian abrirá un gráfico creado a partir de los datos estadísticos de la batería.

Cómo ver los datos con los gráficos de Battery Historian

En el gráfico de Battery Historian se muestran eventos relacionados con la batería a lo largo del tiempo.

En cada fila se muestra un segmento de barra de color cuando un componente del sistema está activo y, por lo tanto, usa corriente de la batería. En el gráfico no se muestra la cantidad de batería que usó el componente, solo que la app estaba activa. Los gráficos están organizados por categoría y se muestra una barra por cada categoría a lo largo del tiempo, como se muestra en el eje X del gráfico.

Figura 3: Ejemplo de un gráfico de Battery Historian

  1. Agrega métricas adicionales de la lista desplegable.
  2. Pasa el mouse sobre los íconos de información para ver más datos sobre cada métrica, incluida una referencia de los colores que se usaron en el gráfico.
  3. Pasa el mouse sobre la barra para ver más información detallada sobre esa métrica y las estadísticas de la batería en un momento específico en el cronograma.

Resultados adicionales de las estadísticas sobre la batería

Puedes ver información adicional del archivo batterystats.txt en la sección de estadísticas debajo del gráfico de Battery Historian.

Figura 4: Sección de estadísticas de Battery Historian

En la pestaña 1 System Stats se incluyen estadísticas de todo el sistema, como los niveles de señal de telefonía celular y el brillo de la pantalla. Esta información ofrece un panorama general de lo que sucede con el dispositivo. Esta sección es particularmente útil para asegurarte de que ningún evento externo afecte tu prueba.

En la pestaña 2 App Stats se incluye información sobre apps específicas. Para ordenar la lista de apps, usa la lista desplegable 3 Sort apps by en el panel "App Selection" de la izquierda. Puedes seleccionar una app específica para ver estadísticas sobre cómo usar la lista desplegable de apps 4 a continuación.

Para obtener más información sobre el rendimiento de la batería, consulta Cómo optimizar la duración de la batería.