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 de profil d'alimentation.

Statistiques d'utilisation de la batterie

Le cadre détermine automatiquement les statistiques d'utilisation de la batterie en suivant le temps que passent les composants de l'appareil dans différents états. Au fur et à mesure que les composants (chipset Wi-Fi, radio cellulaire, Bluetooth, GPS, écran, CPU) changent d'état (OFF / ON, veille / pleine puissance, faible / haute luminosité, etc.), le service de contrôle fait rapport au service BatteryStats. BatteryStats recueille des informations au fil du temps et les stocke pour une utilisation lors des redémarrages. Le service ne suit pas directement la consommation de courant de la batterie, mais recueille à la place 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:

  • Poussez . Les services conscients des changements de composants poussent les changements d'état au service BatteryStats.
  • Tirez . 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 un instantané.

La consommation de ressources est associée à l'application utilisant la ressource. Lorsque plusieurs applications utilisent simultanément une ressource (comme des wakelocks qui empêchent la suspension du système), le cadre répartit la consommation entre ces applications, mais pas nécessairement de manière égale.

Pour éviter de perdre des statistiques d'utilisation pour un événement d'arrêt, ce qui peut indiquer des problèmes de consommation d'énergie de la batterie (c'est-à-dire qu'un arrêt se produit parce que la batterie a atteint une capacité restante nulle), le framework fait clignoter les 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 pas de modifications OEM.

Valeurs du profil de puissance

Attention: les fabricants d'appareils doivent fournir un profil de puissance du composant 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 de puissance .

Dans un profil de puissance, la consommation d'énergie est spécifiée en milliampères (mA) de consommation de courant à une tension nominale et peut être une valeur fractionnaire spécifiée en microampères (uA). La valeur doit être le mA consommé au niveau de 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 de puissance d'affichage spécifie le courant mA requis pour maintenir l'affichage allumé à la luminosité minimale et à la luminosité maximale. Pour déterminer le coût de l'énergie (c'est-à-dire la batterie déchargée par le composant d'affichage) de maintenir l'affichage allumé, le cadre suit le temps passé à chaque niveau de luminosité, puis multiplie ces intervalles de temps par un coût de luminosité d'affichage interpolé.

Le framework multiplie également le temps CPU de chaque application par le mA requis pour faire fonctionner le CPU à une vitesse spécifique. Ce calcul établit un classement comparatif de la quantité de batterie consommée par une application en exécutant le code CPU (la durée de l'application au premier plan et la durée totale, y compris l'activité en arrière-plan, sont signalées séparément).