Google is committed to advancing racial equity for Black communities. See how.
Se usó la API de Cloud Translation para traducir esta página.
Switch to English

Medición de valores de potencia

Los fabricantes de dispositivos deben proporcionar un perfil de potencia de los componentes en /frameworks/base/core/res/res/xml/power_profile.xml .

Para determinar los valores de los perfiles de potencia, utilice hardware que mida la potencia que utiliza el dispositivo y realice las diversas operaciones para las que se necesita información. Mida el uso de energía durante esas operaciones y calcule los valores (derivando las diferencias de otros usos de energía de referencia, según corresponda).

Dado que el objetivo de un perfil de potencia es estimar el consumo de la batería de forma adecuada, los valores del perfil de potencia se dan en corriente (amperios). El marco de Android multiplica la corriente por el tiempo durante el cual el subsistema estuvo activo y calcula el valor mAh, que luego se usa para estimar la cantidad de batería agotada por la aplicación / subsistema.

Los dispositivos con controladores Bluetooth, módem y Wi-Fi que ejecutan Android 7.0 y superior pueden proporcionar valores de energía adicionales obtenidos de los datos del chipset.

Dispositivos con CPU heterogéneas

El perfil de energía para dispositivos con núcleos de CPU de arquitectura heterogénea debe incluir los siguientes campos adicionales:

  • Número de CPU totales para cada clúster (expresado en cpu.clusters.cores).
  • Velocidades de CPU admitidas por cada clúster.
  • Consumo de energía de la CPU activa para cada clúster.

Para diferenciar entre el consumo de energía de la CPU activa y las velocidades de CPU admitidas para los clústeres, agregue el número de clúster al nombre de la matriz. Los números de clúster se asignan en el orden de los núcleos de CPU en el árbol de dispositivos del kernel. Por ejemplo, en una arquitectura heterogénea que tiene dos (2) clústeres con cuatro (4) núcleos:

  • cluster0 consta de cpu0-3
  • cluster1 consta de cpu4-7

El marco de Android usa estos números de núcleo de CPU cuando lee estadísticas de los archivos sysfs en: /sys/devices/system/cpu/cpu<number>/cpufreq/stats .

Ejemplo de velocidades y CPU de clúster:

<array name="cpu.active.cluster0">
<value>200</value>
<value>300</value>
<value>400</value>
</array>
<array name="cpu.speeds.cluster0">
<value>600000</value>
<value>800000</value>
<value>1200000</value>
</array>

<array name="cpu.active.cluster1">
<value>400</value>
<value>500</value>
<value>600</value>
</array>
<array name="cpu.speeds.cluster1">
<value>800000</value>
<value>1200000</value>
<value>1400000</value>
</array>

Valores de potencia

La siguiente tabla describe los valores de potencia disponibles. Para ver el archivo de muestra en AOSP, consulte power_profile.xml .

Nombre Descripción Valor de ejemplo Notas
ambiente en Energía adicional utilizada cuando la pantalla está en modo dormido / ambiental / siempre encendida en lugar de apagada. alrededor de 100 mA -
pantalla en Energía adicional utilizada cuando la pantalla está encendida con un brillo mínimo. 200 mA Incluye controlador táctil y retroiluminación de la pantalla. A 0 de brillo, no es el mínimo de Android que tiende a ser del 10 o 20%.
screen.full Energía adicional utilizada cuando la pantalla tiene el brillo máximo, en comparación con la pantalla con el brillo mínimo. 100 mA-300 mA Una fracción de este valor (basado en el brillo de la pantalla) se agrega al valor screen.on para calcular el uso de energía de la pantalla.
wifi.on Se usa energía adicional cuando el Wi-Fi está encendido pero no recibe, transmite ni escanea. 2 mA -
wifi.active Energía adicional utilizada al transmitir o recibir a través de Wi-Fi. 31 mA -
wifi.scan Energía adicional utilizada cuando Wi-Fi busca puntos de acceso. 100 mA -
audio Potencia adicional utilizada al decodificar / codificar audio a través de DSP. alrededor de 10 mA Se utiliza para audio DSP.
vídeo Energía adicional utilizada al decodificar video vía DSP. alrededor de 50 mA Se utiliza para video DSP.
camera.avg Uso medio de energía del subsistema de la cámara para una aplicación de cámara típica. 600 mA Diseñado como una estimación aproximada para una aplicación que ejecuta una vista previa y captura aproximadamente 10 imágenes de resolución completa por minuto.
camera.flashlight Energía promedio utilizada por el módulo de flash de la cámara cuando está encendido. 200 mA -
gps.signalqualitybased Potencia adicional utilizada por GPS según la intensidad de la señal. Esta es una entrada de valores múltiples, uno por intensidad de señal, de más débil a más fuerte. 30 mA, 10 mA -
gps. en Energía adicional utilizada cuando el GPS está adquiriendo una señal. 50 mA -
radioactivo Energía adicional utilizada cuando la radio celular está transmitiendo / recibiendo. 100 mA-300 mA -
radio.scanning Energía adicional utilizada cuando la radio celular está buscando en la torre. 1,2 mA -
radio.on Energía adicional utilizada cuando la radio celular está encendida. Esta es una entrada de valores múltiples, uno por intensidad de señal (sin señal, débil, moderada, fuerte). 1,2 mA Algunas radios aumentan la potencia cuando buscan una torre celular y no detectan una señal. Los valores pueden ser iguales o disminuir al aumentar la intensidad de la señal. Si proporciona solo un valor, se utiliza el mismo valor para todas las fortalezas. Si proporciona dos valores, el primero se usa para ausencia de señal, el segundo valor se usa para todas las demás potencias, y así sucesivamente.
bluetooth.controller.idle Consumo de corriente promedio (mA) del controlador Bluetooth cuando está inactivo. - Estos valores no se estiman, sino que se toman de la hoja de datos del responsable del tratamiento. Si hay varios estados de recepción o transmisión, se toma el promedio de esos estados. Además, el sistema ahora recopila datos para escaneos de baja energía (LE) y Bluetooth .

Android 7.0 y versiones posteriores ya no usan los valores de potencia de Bluetooth para bluetooth.active (se usa cuando se reproduce audio a través de Bluetooth A2DP) y bluetooth.on (se usa cuando Bluetooth está encendido pero inactivo).
bluetooth.controller.rx Consumo de corriente promedio (mA) del controlador Bluetooth al recibir. -
bluetooth.controller.tx Consumo de corriente promedio (mA) del controlador Bluetooth durante la transmisión. -
bluetooth.controller.voltage Voltaje de funcionamiento promedio (mV) del controlador Bluetooth. -
modem.controller.sleep Consumo de corriente promedio (mA) del controlador de módem cuando está inactivo. 0 mA Estos valores no se estiman, sino que se toman de la hoja de datos del responsable del tratamiento. Si hay varios estados de recepción, se toma el promedio de esos estados. Si hay varios estados de transmisión, se admite la especificación de un valor para cada estado de transmisión a partir de Android 9.
modem.controller.idle Consumo de corriente promedio (mA) del controlador de módem cuando está inactivo. -
modem.controller.rx Consumo de corriente promedio (mA) del controlador del módem al recibir. -
modem.controller.tx Consumo de corriente promedio (mA) del controlador de módem cuando transmite a diferentes niveles de potencia de RF. Esta es una entrada de varios valores con un valor por nivel de potencia de transmisión. 100 mA, 200 mA, 300 mA, 400 mA, 500 mA
modem.controller.voltage Voltaje de funcionamiento promedio (mV) del controlador del módem. -
wifi.controller.idle Consumo de corriente promedio (mA) del controlador Wi-Fi cuando está inactivo. - Estos valores no se estiman, sino que se toman de la hoja de datos del responsable del tratamiento. Si hay varios estados de recepción o transmisión, se toma el promedio de esos estados.
wifi.controller.rx Consumo de corriente promedio (mA) del controlador Wi-Fi al recibir. -
wifi.controller.tx Consumo de corriente promedio (mA) del controlador Wi-Fi durante la transmisión. -
wifi.controller.voltage Voltaje de funcionamiento promedio (mV) del controlador Wi-Fi. -
cpu.speeds Esta es una entrada de varios valores que enumera cada posible velocidad de CPU en KHz. 125000 KHz, 250000 KHz, 500000 KHz, 1000000 KHz, 1500000 KHz El número y el orden de las entradas deben corresponder a las entradas de mA en cpu.active.
cpu.idle Energía total consumida por el sistema cuando las CPU (y el SoC) están en estado de suspensión del sistema. 3 mA -
cpu. despierto Energía adicional utilizada cuando las CPU están en estado inactivo de programación (bucle inactivo del kernel); el sistema no está en estado de suspensión del sistema. 50 mA Es posible que su plataforma tenga más de un estado inactivo en uso con diferentes niveles de consumo de energía; Elija un estado inactivo representativo para períodos más largos de inactividad del programador (varios milisegundos). Examine el gráfico de potencia en su equipo de medición y elija muestras donde la CPU tenga su menor consumo, descartando muestras más altas donde la CPU salió inactiva.
cpu.activa Energía adicional utilizada por las CPU cuando se ejecuta a diferentes velocidades. 100 mA, 120 mA, 140 mA, 160 mA, 200 mA El valor representa la potencia utilizada por los rieles de la CPU cuando se ejecuta a diferentes velocidades. Establezca la velocidad máxima en el kernel para cada una de las velocidades permitidas y fije la CPU a esa velocidad. El número y orden de las entradas corresponden al número y orden de las entradas en cpu.speeds.
cpu.clusters.cores Número de núcleos que contiene cada clúster de CPU. 4, 2 Requerido solo para dispositivos con arquitecturas de CPU heterogéneas . El número de entradas y el orden deben coincidir con el número de entradas de clúster para cpu.active y cpu.speeds. La primera entrada representa el número de núcleos de CPU en cluster0, la segunda entrada representa el número de núcleos de CPU en cluster1, y así sucesivamente.
capacidad de la batería Capacidad total de la batería en mAh. 3000 mAh -

Escaneos de baja energía (LE) y Bluetooth

Para los dispositivos que ejecutan Android 7.0, el sistema recopila datos para escaneos de baja energía (LE) y tráfico de red Bluetooth (como RFCOMM y L2CAP) y asocia estas actividades con la aplicación de inicio. Los escaneos de Bluetooth están asociados con la aplicación que inició el escaneo, pero los escaneos por lotes no lo están (y en cambio están asociados con la aplicación de Bluetooth). Para el escaneo de una aplicación durante N milisegundos, el costo del escaneo es N milisegundos de tiempo de recepción y N milisegundos de tiempo de transmisión; todo el tiempo restante del controlador se asigna al tráfico de la red o la aplicación Bluetooth.