Mesure des valeurs de puissance

Les fabricants d'appareils doivent présenter un profil de puissance en composant /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 au cours de ces opérations et calculez les valeurs (en dérivant les différences par rapport à d'autres utilisations d'énergie de base, le cas échéant).

Comme l'objectif d'un profil de puissance est d'estimer la consommation de la batterie de manière appropriée, les valeurs du profil de puissance sont données en courant (ampères). Le framework Android multiplie le courant par le temps pendant lequel 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 des processeurs hétérogènes

Le profil de puissance pour les appareils avec des 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 du processeur prises en charge par chaque cluster.
  • Consommation d'énergie du processeur actif pour chaque cluster.

Pour faire la différence entre la consommation d'énergie du processeur actif et les vitesses de processeur prises en charge pour les clusters, ajoutez le numéro de 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 qui a deux (2) clusters avec quatre (4) cœurs :

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

Le cadre Android utilise ces numéros de base du processeur lors de la lecture des statistiques des sysfs fichiers: /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 le fichier d'exemple dans PSBA, voir power_profile.xml .

Nom La description Exemple de valeur Remarques
ambiant.on Puissance supplémentaire utilisée lorsque l'écran est en mode veille/ambiant/toujours allumé au lieu d'être éteint. environ 100 mA -
allume l'écran Puissance supplémentaire utilisée lorsque l'écran est allumé à 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 électrique de l'écran.
wifi.on Puissance supplémentaire utilisée lorsque le Wi-Fi est activé mais pas en réception, en transmission ou en numérisation. 2 mA -
wifi.actif Puissance supplémentaire utilisée lors de la transmission ou de la réception via Wi-Fi. 31 mA -
scan.wifi 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 moyenne d'énergie par le sous-système de caméra pour une application de caméra type. 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.
appareil photo.lampe de poche Puissance moyenne utilisée par le module flash de l'appareil photo lorsqu'il est allumé. 200 mA -
gps.signalqualitybased Puissance supplémentaire utilisée par le GPS en fonction de la force du signal. Il s'agit d'une entrée à plusieurs valeurs, une par force de signal, de la plus faible à la plus forte. 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 émet/reçoit. 100 mA-300 mA -
radio.balayage Puissance supplémentaire utilisée lorsque la radio cellulaire recherche la tour. 1,2 mA -
radio.on Puissance supplémentaire utilisée lorsque la radio cellulaire est allumée. Il s'agit d'une entrée à plusieurs valeurs, 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 puissance du signal. Si vous ne fournissez qu'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 forces, 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 tirées 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. En outre, le système recueille maintenant des données pour faible consommation d' énergie (LE) et des analyses Bluetooth .

Android 7.0 et versions ultérieures n'utilisent plus les valeurs d'alimentation Bluetooth pour bluetooth.active (utilisé lors de la lecture audio via Bluetooth A2DP) et bluetooth.on (utilisé lorsque Bluetooth est activé mais inactif).
bluetooth.contrôleur.rx Consommation de courant moyenne (mA) du contrôleur Bluetooth lors de la réception. -
bluetooth.contrôleur.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.sommeil Appel de courant moyen (mA) du contrôleur de modem lorsqu'il est en veille. 0 mA Ces valeurs ne sont pas estimées, mais tirées de la fiche technique du contrôleur. S'il y a plusieurs états de réception, la moyenne de ces états est prise. 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.contrôleur.inactif Appel de courant moyen (mA) du contrôleur de modem lorsqu'il est inactif. -
modem.contrôleur.rx Appel de courant moyen (mA) du contrôleur de modem lors de la réception. -
modem.contrôleur.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 d'émission. 100 mA, 200 mA, 300 mA, 400 mA, 500 mA
tension.du.contrôleur.du.modem 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 tirées 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.controller.voltage Tension de fonctionnement moyenne (mV) du contrôleur Wi-Fi. -
cpu.speeds Il s'agit d'une entrée à plusieurs valeurs qui répertorie chaque vitesse de processeur possible en KHz. 125000 KHz, 250000 KHz, 500000 KHz, 1000000 KHz, 1500000 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 CPU (et le SoC) sont en état de suspension du système. 3 mA -
cpu.wake Puissance supplémentaire utilisée lorsque les CPU 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é en cours d'utilisation avec différents niveaux de consommation d'énergie ; choisissez un état d'inactivité représentatif pour de plus longues périodes d'inactivité du planificateur (plusieurs millisecondes). Examinez le graphique de puissance sur votre équipement de mesure et choisissez des échantillons où le processeur est à sa consommation la plus faible, en éliminant les échantillons plus élevés où le processeur est sorti inactif.
cpu.active Puissance supplémentaire utilisée par les processeurs lorsqu'ils fonctionnent à des vitesses différentes. 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 dans le 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 Obligatoire uniquement pour les appareils avec des architectures de processeurs 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 cluster0, la deuxième entrée représente le nombre de cœurs de processeur dans cluster1, et ainsi de suite.
capacité de la batterie Capacité totale de la batterie en mAh. 3000 mAh -

Balayages à faible consommation d'énergie (LE) et Bluetooth

Pour les appareils exécutant Android 7.0, le système collecte des données pour les analyses à faible consommation d'énergie (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 scrutant pendant N millisecondes, le coût de l'exploration est de N millisecondes de temps rx et de N millisecondes de temps tx ; tout le temps restant du contrôleur est affecté au trafic réseau ou à l'application Bluetooth.