Perfiles de energía para Android

La información sobre el uso de la batería se deriva de las estadísticas de uso de la batería y los valores del perfil de energía.

Estadísticas de uso de la batería

El framework determina automáticamente las estadísticas de uso de la batería haciendo un seguimiento del tiempo que los componentes del dispositivo pasan en diferentes estados. A medida que los componentes (chipset de Wi-Fi, radio celular, Bluetooth, GPS, pantalla, CPU) cambian de estado (APAGADO/ENCENDIDO, inactivo/potencia máxima, brillo bajo/alto, etcétera), el servicio de control informa al servicio BatteryStats del framework. BatteryStats recopila información con el tiempo y la almacena para usarla en todos los reinicios. El servicio no hace un seguimiento del consumo de corriente de la batería directamente, sino que recopila información de sincronización que se puede usar para aproximar el consumo de batería de diferentes componentes.

El framework recopila estadísticas con los siguientes métodos:

  • Push. Los servicios que detectan cambios en los componentes envían los cambios de estado al servicio BatteryStats.
  • Tirar. En el caso de los componentes, como el uso de la CPU por parte de las apps, el framework extrae automáticamente los datos en los puntos de transición (como el inicio o la detención de una actividad) para tomar una instantánea.

El consumo de recursos se asocia con la aplicación que usa el recurso. Cuando varias aplicaciones usan un recurso de forma simultánea (como los wakelocks que impiden que el sistema se suspenda), el framework distribuye el consumo entre esas aplicaciones, aunque no necesariamente de forma equitativa.

Para evitar perder las estadísticas de uso de un evento de apagado, que pueden indicar problemas de consumo de batería (es decir, el apagado se produce porque la batería alcanzó una capacidad restante de cero), el framework muestra las estadísticas aproximadamente cada 30 minutos.

El marco de trabajo controla por completo las estadísticas de uso de la batería y no requiere modificaciones del OEM.

Valores del perfil de energía

Precaución: Los fabricantes de dispositivos deben proporcionar un perfil de energía del componente que defina el valor de consumo de corriente del componente y la descarga aproximada de la batería que causa el componente con el tiempo. Este perfil se define en platform/frameworks/base/core/res/res/xml/power_profile.xml. Para obtener orientación sobre estos parámetros de configuración, consulta Valores de potencia.

Dentro de un perfil de energía, el consumo de energía se especifica en miliamperios (mA) de consumo de corriente a un voltaje nominal y puede ser un valor fraccionario especificado en microamperios (uA). El valor debe ser el mA consumido en la batería y no un valor aplicable a un riel de alimentación que no corresponda a la corriente consumida de la batería.

Por ejemplo, un perfil de energía de la pantalla especifica los mA de corriente necesarios para mantener la pantalla encendida con el brillo mínimo y máximo. Para determinar el costo de energía (es decir, la batería que consume el componente de la pantalla) de mantener la pantalla encendida, el framework hace un seguimiento del tiempo que se pasa en cada nivel de brillo y, luego, multiplica esos intervalos de tiempo por un costo de brillo de pantalla interpolado.

El framework también multiplica el tiempo de CPU de cada aplicación por los mA necesarios para ejecutar la CPU a una velocidad específica. Este cálculo establece una clasificación comparativa de la cantidad de batería que consume una aplicación cuando ejecuta código de CPU (el tiempo como app en primer plano y el tiempo total, incluida la actividad en segundo plano, se informan por separado).