Energieprofile für Android,Energieprofile für Android

Informationen zur Akkunutzung werden aus Akkunutzungsstatistiken und Leistungsprofilwerten abgeleitet.

Statistiken zum Akkuverbrauch

Das Framework ermittelt automatisch Statistiken zur Batterienutzung, indem es verfolgt, wie lange Gerätekomponenten in verschiedenen Zuständen verbringen. Wenn Komponenten (Wi-Fi-Chipsatz, Mobilfunk, Bluetooth, GPS, Display, CPU) ihren Status ändern (AUS/EIN, Leerlauf/volle Leistung, geringe/hohe Helligkeit usw.), meldet sich der steuernde Dienst beim Framework BatteryStats-Dienst. BatteryStats sammelt im Laufe der Zeit Informationen und speichert sie für die Verwendung bei Neustarts. Der Dienst verfolgt den Stromverbrauch der Batterie nicht direkt, sondern sammelt Zeitinformationen, die verwendet werden können, um den Batterieverbrauch durch verschiedene Komponenten zu schätzen.

Das Framework sammelt Statistiken mit den folgenden Methoden:

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

Der Ressourcenverbrauch ist der Anwendung zugeordnet, die die Ressource verwendet. Wenn mehrere Anwendungen gleichzeitig eine Ressource verwenden (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 zu vermeiden, dass Nutzungsstatistiken für ein Abschaltereignis verloren gehen, was auf Probleme mit dem Stromverbrauch des Akkus hinweisen kann (dh das Abschalten erfolgt, weil der Akku keine verbleibende Kapazität erreicht hat), zeigt das Framework ungefähr alle 30 Minuten Statistiken an.

Die Batterienutzungsstatistiken werden vollständig vom Framework verarbeitet und erfordern keine OEM-Modifikationen.

Leistungsprofilwerte

Achtung: Gerätehersteller müssen ein Komponenten-Leistungsprofil bereitstellen, das den aktuellen Verbrauchswert der Komponente und die ungefähre Batterieentladung definiert, die durch die Komponente im Laufe der Zeit verursacht wird. Dieses Profil ist in platform/frameworks/base/core/res/res/xml/power_profile.xml definiert . Anleitungen zu diesen Einstellungen finden Sie unter Leistungswerte .

Innerhalb eines Leistungsprofils wird der Stromverbrauch in Milliampere (mA) der Stromaufnahme bei einer Nennspannung angegeben und kann ein Bruchwert sein, der in Mikroampere (uA) angegeben ist. Der Wert sollte der an der Batterie verbrauchte mA sein und kein Wert, der auf eine Stromschiene anwendbar ist, die nicht dem von der Batterie verbrauchten Strom entspricht.

Beispielsweise gibt ein Anzeigeleistungsprofil den Strom in mA an, der erforderlich ist, um die Anzeige bei minimaler Helligkeit und bei maximaler Helligkeit eingeschaltet zu halten. Um die Energiekosten (dh die von der Anzeigekomponente entleerte Batterie) zu bestimmen, um die Anzeige eingeschaltet zu lassen, verfolgt das Framework die Zeit, die bei jedem Helligkeitspegel verbracht wird, und multipliziert dann diese Zeitintervalle mit einem interpolierten Anzeigehelligkeitsaufwand.

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

,

Informationen zur Akkunutzung werden aus Akkunutzungsstatistiken und Leistungsprofilwerten abgeleitet.

Statistiken zum Akkuverbrauch

Das Framework ermittelt automatisch Statistiken zur Batterienutzung, indem es verfolgt, wie lange Gerätekomponenten in verschiedenen Zuständen verbringen. Wenn Komponenten (Wi-Fi-Chipsatz, Mobilfunk, Bluetooth, GPS, Display, CPU) ihren Status ändern (AUS/EIN, Leerlauf/volle Leistung, geringe/hohe Helligkeit usw.), meldet sich der steuernde Dienst beim Framework BatteryStats-Dienst. BatteryStats sammelt im Laufe der Zeit Informationen und speichert sie für die Verwendung bei Neustarts. Der Dienst verfolgt den Stromverbrauch der Batterie nicht direkt, sondern sammelt Zeitinformationen, die verwendet werden können, um den Batterieverbrauch durch verschiedene Komponenten zu schätzen.

Das Framework sammelt Statistiken mit den folgenden Methoden:

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

Der Ressourcenverbrauch ist der Anwendung zugeordnet, die die Ressource verwendet. Wenn mehrere Anwendungen gleichzeitig eine Ressource verwenden (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 zu vermeiden, dass Nutzungsstatistiken für ein Abschaltereignis verloren gehen, was auf Probleme mit dem Stromverbrauch des Akkus hinweisen kann (dh das Abschalten erfolgt, weil der Akku keine verbleibende Kapazität erreicht hat), zeigt das Framework ungefähr alle 30 Minuten Statistiken an.

Die Batterienutzungsstatistiken werden vollständig vom Framework verarbeitet und erfordern keine OEM-Modifikationen.

Leistungsprofilwerte

Achtung: Gerätehersteller müssen ein Komponenten-Leistungsprofil bereitstellen, das den aktuellen Verbrauchswert der Komponente und die ungefähre Batterieentladung definiert, die durch die Komponente im Laufe der Zeit verursacht wird. Dieses Profil ist in platform/frameworks/base/core/res/res/xml/power_profile.xml definiert . Anleitungen zu diesen Einstellungen finden Sie unter Leistungswerte .

Innerhalb eines Leistungsprofils wird der Stromverbrauch in Milliampere (mA) der Stromaufnahme bei einer Nennspannung angegeben und kann ein Bruchwert sein, der in Mikroampere (uA) angegeben ist. Der Wert sollte der an der Batterie verbrauchte mA sein und kein Wert, der auf eine Stromschiene anwendbar ist, die nicht dem von der Batterie verbrauchten Strom entspricht.

Beispielsweise gibt ein Anzeigeleistungsprofil den Strom in mA an, der erforderlich ist, um die Anzeige bei minimaler Helligkeit und bei maximaler Helligkeit eingeschaltet zu halten. Um die Energiekosten (dh die von der Anzeigekomponente entleerte Batterie) zu bestimmen, um die Anzeige eingeschaltet zu lassen, verfolgt das Framework die Zeit, die bei jedem Helligkeitspegel verbracht wird, und multipliziert dann diese Zeitintervalle mit einem interpolierten Anzeigehelligkeitsaufwand.

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