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 se trouvent dans différents états. Lorsque les composants (chipset Wi-Fi, radio mobile, Bluetooth, GPS, écran, processeur) changent d'état (OFF/ON, veille/pleine puissance, luminosité faible/élevée, etc.), le service de contrôle envoie des rapports 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 la consommation de courant de la batterie, mais collecte plutôt des informations temporelles 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:

  • Push. Les services conscients des modifications de composants transfèrent les modifications d'état au service BatteryStats.
  • Pull. Pour les composants tels que l'utilisation du processeur par les applications, le framework extrait automatiquement les données aux points de transition (comme le démarrage ou l'arrêt d'une activité) pour prendre une capture d'écran.

La consommation de ressources est associée à l'application qui utilise la ressource. Lorsque plusieurs applications utilisent simultanément une ressource (telles que des wakelocks qui empêchent le système de se suspendre), 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 d'un événement d'arrêt, ce 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 zéro capacité restante), le framework affiche les statistiques toutes les 30 minutes environ.

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 actuelle du composant et l'épuisement approximatif de la batterie causé 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 la section Valeurs d'alimentation.

Dans un profil d'alimentation, la consommation d'énergie est spécifiée en milliampères (mA) de courant absorbé à 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 le courant mA requis pour maintenir l'écran allumé à la luminosité minimale et maximale. Pour déterminer le coût énergétique (c'est-à-dire la batterie épuisée par le composant d'affichage) de l'activation de l'écran, le framework suit la durée passée à chaque niveau de luminosité, puis multiplie ces intervalles de temps par un coût de luminosité de l'écran interpolé.

Le framework multiplie également le temps de processeur pour chaque application par le mA requis 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 de processeur (le temps en tant qu'application de premier plan et le temps total, y compris l'activité en arrière-plan, sont indiqués séparément).