Leistungsprofile für Android

Informationen zur Batterienutzung werden aus Batterienutzungsstatistiken und Leistungsprofilwerten abgeleitet.

Statistiken zum Batterieverbrauch

Das Framework ermittelt automatisch Statistiken zur Batterienutzung, indem es verfolgt, wie lange Gerätekomponenten in verschiedenen Zuständen verbleiben. Wenn Komponenten (Wi-Fi-Chipsatz, Mobilfunk, Bluetooth, GPS, Display, CPU) ihren Status ändern (AUS/EIN, Leerlauf/volle Leistung, niedrige/hohe Helligkeit usw.), meldet sich der steuernde Dienst an den Framework-BatteryStats-Dienst. BatteryStats sammelt im Laufe der Zeit Informationen und speichert sie zur Verwendung bei Neustarts. Der Dienst verfolgt den Batteriestromverbrauch nicht direkt, sondern sammelt stattdessen Zeitinformationen, die zur Schätzung des Batterieverbrauchs verschiedener Komponenten verwendet werden können.

Das Framework sammelt Statistiken mithilfe der folgenden Methoden:

  • Drücken . Dienste, die Komponentenänderungen kennen, übertragen Zustandsänderungen an den BatteryStats-Dienst.
  • Ziehen . Für Komponenten wie die CPU-Nutzung durch Apps ruft das Framework die Daten automatisch an Übergangspunkten (z. B. Starten oder Stoppen einer Aktivität) ab, um einen Snapshot zu erstellen.

Der Ressourcenverbrauch hängt mit der Anwendung zusammen, die die Ressource nutzt. Wenn mehrere Anwendungen gleichzeitig eine Ressource nutzen (z. B. Wakelocks, die verhindern, dass das System angehalten wird), verteilt das Framework den Verbrauch auf diese Anwendungen, wenn auch nicht unbedingt gleichmäßig.

Um den Verlust von Nutzungsstatistiken bei einem Abschaltereignis zu vermeiden, das auf Probleme mit dem Batteriestromverbrauch hinweisen kann (z. B. weil die Batterie keine Restkapazität mehr hat), blinkt das Framework etwa alle 30 Minuten mit Statistiken.

Statistiken zur Batterienutzung werden vollständig vom Framework verwaltet und erfordern keine OEM-Änderungen.

Leistungsprofilwerte

Achtung: Gerätehersteller müssen ein Komponentenleistungsprofil bereitstellen, das den aktuellen Verbrauchswert für die Komponente und den ungefähren Batterieverbrauch definiert, der durch die Komponente im Laufe der Zeit verursacht wird. Dieses Profil ist in platform/frameworks/base/core/res/res/xml/power_profile.xml definiert. Hinweise zu diesen Einstellungen finden Sie unter Leistungswerte .

Innerhalb eines Leistungsprofils wird der Stromverbrauch in Milliampere (mA) Stromaufnahme bei Nennspannung angegeben und kann ein Bruchwert in Mikroampere (uA) sein. Der Wert sollte der von der Batterie verbrauchte mA sein und kein Wert, der für eine Stromschiene gilt und nicht dem von der Batterie verbrauchten Strom entspricht.

Ein Display-Leistungsprofil gibt beispielsweise den mA-Strom an, der erforderlich ist, um das Display bei minimaler und maximaler Helligkeit eingeschaltet zu halten. Um die Stromkosten (d. h. die von der Display-Komponente verbrauchte Batterie) für das Einschalten des Displays zu ermitteln, verfolgt das Framework die Zeit, die bei jeder Helligkeitsstufe verbracht wird, und multipliziert diese Zeitintervalle dann mit einem interpolierten Display-Helligkeitsaufwand.

Das Framework multipliziert außerdem die CPU-Zeit für jede Anwendung mit dem mA, der erforderlich ist, um die CPU mit einer bestimmten Geschwindigkeit zu betreiben. Diese Berechnung erstellt eine vergleichende Rangfolge darüber, wie viel Batterie eine Anwendung durch die Ausführung von CPU-Code verbraucht (Zeit als Vordergrund-App und Gesamtzeit einschließlich Hintergrundaktivität werden separat gemeldet).