Profils d'alimentation pour Android

Les informations sur l'utilisation de la batterie sont dérivées des statistiques d'utilisation de la batterie et des valeurs du profil d'alimentation.

Statistiques d'utilisation de la batterie

Le framework détermine automatiquement les statistiques d'utilisation de la batterie en suivant la durée pendant laquelle les composants de l'appareil restent dans différents états. Lorsque les composants (chipset Wi-Fi, radio cellulaire, Bluetooth, GPS, écran, processeur) changent d'état (désactivé/activé, inactif/pleine puissance, luminosité faible/élevée, etc.), le service de contrôle envoie un rapport au service BatteryStats du framework. BatteryStats collecte des informations au fil du temps et les stocke pour les utiliser lors des redémarrages. Le service ne suit pas directement le courant de la batterie, mais collecte des informations de synchronisation qui peuvent être utilisées pour estimer la consommation de la batterie par différents composants.

Le framework collecte des statistiques à l'aide des méthodes suivantes :

  • Mode Push. Les services qui sont informés des modifications des composants envoient les changements d'état au service BatteryStats.
  • Extraire. Pour les composants tels que l'utilisation du processeur par les applications, le framework extrait automatiquement les données aux points de transition (par exemple, au démarrage ou à l'arrêt d'une activité) pour prendre un instantané.

La consommation de ressources est associée à l'application qui utilise la ressource. Lorsque plusieurs applications utilisent simultanément une ressource (par exemple, des verrous de réveil qui empêchent le système de se mettre en veille), le framework répartit la consommation entre ces applications, mais pas nécessairement de manière égale.

Pour éviter de perdre les statistiques d'utilisation lors d'un événement d'arrêt, qui peut indiquer des problèmes de consommation d'énergie de la batterie (c'est-à-dire que l'arrêt se produit parce que la batterie a atteint une capacité restante nulle), le framework envoie des statistiques environ toutes les 30 minutes.

Les statistiques d'utilisation de la batterie sont entièrement gérées par le framework et ne nécessitent aucune modification de l'OEM.

Valeurs du profil d'alimentation

Attention : Les fabricants d'appareils doivent fournir un profil d'alimentation des composants qui définit la valeur de consommation de courant du composant et la décharge approximative de la batterie causée par le composant au fil du temps. Ce profil est défini dans platform/frameworks/base/core/res/res/xml/power_profile.xml. Pour obtenir des conseils sur ces paramètres, consultez Valeurs d'alimentation.

Dans un profil d'alimentation, la consommation d'énergie est spécifiée en milliampères (mA) de courant à une tension nominale et peut être une valeur fractionnaire spécifiée en microampères (uA). La valeur doit correspondre aux mA consommés par la batterie et non à une valeur applicable à un rail d'alimentation qui ne correspond pas au courant consommé par la batterie.

Par exemple, un profil d'alimentation de l'écran spécifie les mA de courant nécessaires pour maintenir l'écran allumé à la luminosité minimale et maximale. Pour déterminer le coût énergétique (c'est-à-dire la batterie déchargée par le composant d'affichage) du maintien de l'écran allumé, le framework suit le temps passé à chaque niveau de luminosité, puis multiplie ces intervalles de temps par un coût de luminosité d'écran interpolé.

Le framework multiplie également le temps processeur de chaque application par les mA nécessaires pour exécuter le processeur à une vitesse spécifique. Ce calcul établit un classement comparatif de la quantité de batterie consommée par une application en exécutant du code processeur (le temps passé en tant qu'application au premier plan et le temps total, y compris l'activité en arrière-plan, sont signalés séparément).