Mesurer les valeurs de puissance

Les fabricants d'appareils doivent fournir un profil d'alimentation des composants dans /frameworks/base/core/res/res/xml/power_profile.xml .

Pour déterminer les valeurs des profils d'alimentation, utilisez un matériel qui mesure la puissance utilisée par l'appareil et effectuez les différentes opérations pour lesquelles des informations sont nécessaires. Mesurez la consommation d'énergie pendant ces opérations et calculez les valeurs (en déduisant les différences par rapport aux autres utilisations d'énergie de référence, le cas échéant).

Comme l'objectif d'un profil de puissance est d'estimer la décharge de la batterie de manière appropriée, les valeurs du profil de puissance sont indiquées en courant (ampères). Le framework Android multiplie le courant par la durée pendant laquelle le sous-système a été actif et calcule la valeur mAh, qui est ensuite utilisée pour estimer la quantité de batterie épuisée par l'application/le sous-système.

Les appareils dotés de contrôleurs Bluetooth, modem et Wi-Fi exécutant Android 7.0 et versions ultérieures peuvent fournir des valeurs de puissance supplémentaires obtenues à partir des données du chipset.

Appareils avec processeurs hétérogènes

Le profil de puissance pour les appareils dotés de cœurs de processeur d'architecture hétérogène doit inclure les champs supplémentaires suivants :

  • Nombre total de processeurs pour chaque cluster (exprimé en cpu.clusters.cores).
  • Vitesses de processeur prises en charge par chaque cluster.
  • Consommation d'énergie du processeur actif pour chaque cluster.

Pour faire la différence entre la consommation électrique active du processeur et les vitesses de processeur prises en charge pour les clusters, ajoutez le numéro du cluster au nom de la baie. Les numéros de cluster sont attribués dans l'ordre des cœurs de processeur dans l'arborescence des périphériques du noyau. Par exemple, dans une architecture hétérogène comportant deux (2) clusters avec quatre (4) cœurs :

  • cluster0 se compose de cpu0-3
  • le cluster1 se compose de cpu4-7

Le framework Android utilise ces numéros de cœur de processeur lorsqu'il lit les statistiques des fichiers sysfs dans : /sys/devices/system/cpu/cpu<number>/cpufreq/stats .

Exemple de processeurs et de vitesses de cluster :

<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>

Valeurs de puissance

Le tableau suivant décrit les paramètres de valeur de puissance disponibles. Pour afficher l'exemple de fichier dans AOSP, consultez power_profile.xml .

Nom Description Exemple de valeur Remarques
ambiant.on Alimentation supplémentaire utilisée lorsque l'écran est en mode veille/ambiance/toujours allumé au lieu d'être éteint. environ 100 mA -
allume l'écran Puissance supplémentaire utilisée lorsque l'écran est allumé avec une luminosité minimale. 200 mA Comprend un contrôleur tactile et un rétroéclairage de l'écran. A 0 luminosité, pas le minimum Android qui tend à être de 10 ou 20 %.
écran.plein Puissance supplémentaire utilisée lorsque l'écran est à la luminosité maximale, par rapport à l'écran à la luminosité minimale. 100 mA-300 mA Une fraction de cette valeur (basée sur la luminosité de l'écran) est ajoutée à la valeur screen.on pour calculer la consommation d'énergie de l'écran.
wifi.on Alimentation supplémentaire utilisée lorsque le Wi-Fi est activé mais ne reçoit pas, ne transmet pas ou ne scanne pas. 2 mA -
wifi.actif Puissance supplémentaire utilisée lors de la transmission ou de la réception via Wi-Fi. 31 mA -
wifi.scan Puissance supplémentaire utilisée lorsque le Wi-Fi recherche des points d'accès. 100 mA -
l'audio Puissance supplémentaire utilisée lors du décodage/encodage audio via DSP. environ 10 mA Utilisé pour l'audio DSP.
vidéo Puissance supplémentaire utilisée lors du décodage vidéo via DSP. environ 50 mA Utilisé pour la vidéo DSP.
caméra.avg Consommation d'énergie moyenne par le sous-système de caméra pour une application de caméra typique. 600 mA Conçu comme une estimation approximative pour une application exécutant un aperçu et capturant environ 10 images en pleine résolution par minute.
caméra.lampe de poche Puissance moyenne utilisée par le module flash de l'appareil photo lorsqu'il est allumé. 200 mA -
basé sur la qualité du signal gps. Puissance supplémentaire utilisée par le GPS en fonction de la force du signal. Il s'agit d'une entrée à valeurs multiples, une par force de signal, du plus faible au plus fort. 30 mA, 10 mA -
gps.on Puissance supplémentaire utilisée lorsque le GPS acquiert un signal. 50 mA -
radioactif Puissance supplémentaire utilisée lorsque la radio cellulaire transmet/reçoit. 100 mA-300 mA -
radio.balayage Puissance supplémentaire utilisée lorsque la radio cellulaire envoie un message à la tour. 1,2 mA -
radio.on Alimentation supplémentaire utilisée lorsque la radio cellulaire est allumée. Il s'agit d'une entrée à valeurs multiples, une par force de signal (pas de signal, faible, modéré, fort). 1,2 mA Certaines radios augmentent la puissance lorsqu'elles recherchent une tour de téléphonie cellulaire et ne détectent pas de signal. Les valeurs peuvent être identiques ou diminuer avec l'augmentation de la force du signal. Si vous fournissez une seule valeur, la même valeur est utilisée pour toutes les forces. Si vous fournissez deux valeurs, la première est utilisée pour l'absence de signal, la seconde valeur est utilisée pour toutes les autres intensités, et ainsi de suite.
bluetooth.controller.idle Consommation de courant moyenne (mA) du contrôleur Bluetooth lorsqu'il est inactif. - Ces valeurs ne sont pas estimées, mais extraites de la fiche technique du contrôleur. S'il existe plusieurs états de réception ou de transmission, la moyenne de ces états est prise en compte. De plus, le système collecte désormais des données pour les analyses Low Energy (LE) et Bluetooth .

Android 7.0 et versions ultérieures n'utilisent plus les valeurs de puissance Bluetooth pour Bluetooth.active (utilisé lors de la lecture audio via Bluetooth A2DP) et Bluetooth.on (utilisé lorsque Bluetooth est activé mais inactif).
bluetooth.controller.rx Consommation de courant moyenne (mA) du contrôleur Bluetooth lors de la réception. -
bluetooth.controller.tx Consommation de courant moyenne (mA) du contrôleur Bluetooth lors de la transmission. -
Bluetooth.contrôleur.tension Tension de fonctionnement moyenne (mV) du contrôleur Bluetooth. -
modem.contrôleur.veille Consommation de courant moyenne (mA) du contrôleur de modem en veille. 0 mA Ces valeurs ne sont pas estimées, mais extraites de la fiche technique du contrôleur. S'il existe plusieurs états de réception, la moyenne de ces états est prise en compte. S'il existe plusieurs états de transmission, la spécification d'une valeur pour chaque état de transmission est prise en charge à partir d'Android 9.
modem.controller.idle Consommation de courant moyenne (mA) du contrôleur de modem lorsqu'il est inactif. -
modem.controller.rx Consommation de courant moyenne (mA) du contrôleur de modem lors de la réception. -
modem.controller.tx Consommation de courant moyenne (mA) du contrôleur de modem lors de la transmission à différents niveaux de puissance RF. Il s'agit d'une entrée à valeurs multiples avec une valeur par niveau de puissance de transmission. 100 mA, 200 mA, 300 mA, 400 mA, 500 mA
modem.contrôleur.tension Tension de fonctionnement moyenne (mV) du contrôleur de modem. -
wifi.controller.idle Consommation de courant moyenne (mA) du contrôleur Wi-Fi lorsqu'il est inactif. - Ces valeurs ne sont pas estimées, mais extraites de la fiche technique du contrôleur. S'il existe plusieurs états de réception ou de transmission, la moyenne de ces états est prise en compte.
wifi.controller.rx Consommation de courant moyenne (mA) du contrôleur Wi-Fi lors de la réception. -
wifi.controller.tx Consommation de courant moyenne (mA) du contrôleur Wi-Fi lors de la transmission. -
wifi.contrôleur.tension Tension de fonctionnement moyenne (mV) du contrôleur Wi-Fi. -
cpu.vitesses Il s'agit d'une entrée à valeurs multiples qui répertorie chaque vitesse de processeur possible en KHz. 125 000 kHz, 250 000 kHz, 500 000 kHz, 1 000 000 kHz, 1500 000 kHz Le nombre et l'ordre des entrées doivent correspondre aux entrées mA dans cpu.active.
cpu.idle Puissance totale consommée par le système lorsque les processeurs (et le SoC) sont en état de suspension du système. 3 mA -
cpu.éveillé Puissance supplémentaire utilisée lorsque les processeurs sont en état d'inactivité de planification (boucle d'inactivité du noyau) ; le système n’est pas en état de suspension du système. 50 mA Votre plate-forme peut avoir plusieurs états d'inactivité avec différents niveaux de consommation d'énergie ; choisissez un état d'inactivité représentatif pour des périodes d'inactivité du planificateur plus longues (plusieurs millisecondes). Examinez le graphique de puissance de votre équipement de mesure et choisissez les échantillons pour lesquels la consommation du processeur est la plus faible, en rejetant les échantillons plus élevés lorsque le processeur est sorti inactif.
cpu.actif Puissance supplémentaire utilisée par les processeurs lorsqu'ils fonctionnent à différentes vitesses. 100 mA, 120 mA, 140 mA, 160 mA, 200 mA La valeur représente la puissance utilisée par les rails du processeur lorsqu'ils fonctionnent à différentes vitesses. Définissez la vitesse maximale du noyau sur chacune des vitesses autorisées et fixez le processeur à cette vitesse. Le nombre et l'ordre des entrées correspondent au nombre et à l'ordre des entrées dans cpu.speeds.
cpu.clusters.cores Nombre de cœurs que contient chaque cluster de processeurs. 4, 2 Requis uniquement pour les appareils dotés d'architectures de processeur hétérogènes . Le nombre d'entrées et l'ordre doivent correspondre au nombre d'entrées de cluster pour cpu.active et cpu.speeds. La première entrée représente le nombre de cœurs de processeur dans le cluster0, la deuxième entrée représente le nombre de cœurs de processeur dans le cluster1, et ainsi de suite.
capacité de la batterie Capacité totale de la batterie en mAh. 3000 mAh -

Analyses Low Energy (LE) et Bluetooth

Pour les appareils exécutant Android 7.0, le système collecte des données pour les analyses Low Energy (LE) et le trafic réseau Bluetooth (tel que RFCOMM et L2CAP) et associe ces activités à l'application initiatrice. Les analyses Bluetooth sont associées à l'application qui a lancé l'analyse, mais les analyses par lots ne le sont pas (et sont plutôt associées à l'application Bluetooth). Pour une application analysant N millisecondes, le coût de l'analyse est de N millisecondes de temps de réception et N millisecondes de temps d'émission ; tout le temps restant du contrôleur est affecté au trafic réseau ou à l’application Bluetooth.