Energiewerte messen

Gerätehersteller müssen ein Leistungsprofil der Komponenten /frameworks/base/core/res/res/xml/power_profile.xml

Verwenden Sie Hardware, die die Leistung misst, um die Werte für Energieprofile zu ermitteln. die vom Gerät verwendet werden, und führen die verschiedenen Vorgänge aus, Informationen benötigt. Den Stromverbrauch während dieser Vorgänge messen und Computing-Ressourcen die Werte (ableiten von Unterschieden aus anderen Basisenergieverbrauchen).

Da das Ziel eines Energieprofils darin besteht, den Akkuverbrauch entsprechend zu schätzen, Leistungsprofilwerte werden in Strom (A) angegeben. Das Android-Framework multipliziert den aktuellen Wert mit der Zeit, in der das Subsystem aktiv war, und berechnet den mAh-Wert, mit dem anschließend der Akkustand geschätzt wird von der App oder dem Subsystem gelöscht werden.

Geräte mit Bluetooth-, Modem- und WLAN-Controllern mit Android 7.0 und höher können zusätzliche Leistungswerte aus den Chipsatzdaten liefern.

Geräte mit heterogenen CPUs

Das Leistungsprofil für Geräte mit CPU-Kernen in heterogener Architektur muss die folgenden zusätzlichen Felder enthalten:

  • Gesamtzahl der CPUs für jeden Cluster (ausgedrückt in cpu.clusters.cores).
  • Von jedem Cluster unterstützte CPU-Geschwindigkeiten.
  • Aktiver CPU-Stromverbrauch für jeden Cluster.

Um zwischen dem Stromverbrauch der aktiven CPU und der unterstützten CPU zu unterscheiden -Geschwindigkeit für Cluster, hängen Sie die Clusternummer an den Namen des Arrays an. Cluster Die Nummern werden in der Reihenfolge der CPU-Kerne in der Kernel-Gerätestruktur zugewiesen. Für in einer heterogenen Architektur mit zwei (2) Clustern mit vier (4) Kerne:

  • „cluster0“ besteht aus cpu0-3
  • "cluster1" besteht aus "cpu4-7"

Das Android-Framework verwendet diese CPU-Kernzahlen beim Lesen von Statistiken aus den sysfs-Dateien in: /sys/devices/system/cpu/cpu<number>/cpufreq/stats.

Beispiel für Cluster-CPUs und -Geschwindigkeiten:

<array name="cpu.active.cluster0">
<value>200</value>
<value>300</value>
<value>400</value>
</array>
<array name="cpu.speeds.cluster0">
<value>600000</value>
<value>800000</value>
<value>1200000</value>
</array>

<array name="cpu.active.cluster1">
<value>400</value>
<value>500</value>
<value>600</value>
</array>
<array name="cpu.speeds.cluster1">
<value>800000</value>
<value>1200000</value>
<value>1400000</value>
</array>

Potenzwerte

In der folgenden Tabelle werden die verfügbaren Einstellungen für den Energiewert beschrieben. So rufen Sie die Beispieldatei in AOSP, siehe power_profile.xml.

Name Beschreibung Beispielwert Hinweise
Ambient.on Zusätzlicher Stromverbrauch, wenn das Display im Stromsparmodus/Inaktivmodus/Always-On-Modus statt aus ist. ca. 100 mA -
Screen.on Wenn das Display mit minimaler Helligkeit eingeschaltet wird, wird zusätzlicher Strom verbraucht. 200 mA Inklusive Touch-Controller und Hintergrundbeleuchtung des Displays. Bei 0 Helligkeit, nicht der Android-Mindestgröße, die normalerweise bei 10 oder 20 % liegt.
Bildschirm.full Bei maximaler Helligkeit wird zusätzliche Energie verbraucht im Vergleich zu Display bei minimaler Helligkeit. 100–300 mA Ein Bruchteil dieses Werts (basierend auf der Bildschirmhelligkeit) wird dem Screen.on-Wert, um den Stromverbrauch des Bildschirms zu berechnen.
wifi.on Wenn das WLAN aktiviert ist, aber kein Empfang erfolgt, wird zusätzliche Energie verbraucht, das Übertragen oder Scannen. 2 mA -
wifi.active Zusätzliche Energie beim Übertragen oder Empfangen über WLAN. 31 mA -
wifi.scan Zusätzlicher Stromverbrauch, wenn das WLAN nach Zugangspunkten sucht. 100 mA -
Audio Zusätzliche Leistung bei der Audiodecodierung/-codierung über DSP. ca. 10 mA Wird für DSP-Audio verwendet.
Video Zusätzliche Leistung bei der Videodecodierung über DSP. ca. 50 mA Wird für DSP-Videos verwendet.
Kamera.Durchschn. Durchschnittlicher Stromverbrauch des Kamerasubsystems für eine typische Kamera 600 mA Ist als grobe Schätzung für eine App gedacht, in der eine Vorschau ausgeführt wird. und nehmen ca. 10 Fotos mit voller Auflösung pro Minute auf.
Kamera.Taschenlampe Durchschnittliche Leistung, die das Blitzmodul der Kamera im eingeschalteten Zustand verbraucht. 200 mA -
GPS-Signalqualität Zusätzlicher Stromverbrauch für GPS je nach Signalstärke. Das ist ein Eintrag mit mehreren Werten, eine pro Signalstärke, von der schwächsten bis zur stärksten. 30 mA, 10 mA -
GPS auf Wenn das GPS ein Signal empfängt, wird zusätzlich Energie verbraucht. 50 mA -
Radio.active Zusätzlicher Stromverbrauch beim Übertragen/Empfangen von Mobilfunkverbindungen 100–300 mA -
Radio.Suchlauf Zusätzliche Energie, die beim Paging des Mobilfunkmasts auf den Mobilfunkmast verwendet wird. 1,2 mA -
Radio.on Zusätzlicher Stromverbrauch bei aktivierter Mobilfunkverbindung. Das ist ein Eintrag mit mehreren Werten, eine pro Signalstärke (kein Signal, schwach, mäßig, stark). 1,2 mA Manche Funkschnittstellen steigern die Energieleistung, wenn sie nach einem Sendemast suchen, ein Signal erkennen. Werte können gleich sein oder mit zunehmendem Signal abnehmen Stärke. Wenn Sie nur einen Wert angeben, wird für alle Werte derselbe Stärken. Wenn Sie zwei Werte angeben, wird der erste für kein Signal verwendet, der Wert der zweite Wert für alle anderen Stärken verwendet wird usw.
Bluetooth.controller.idle Durchschnittliche Stromaufnahme (mA) des Bluetooth-Controllers bei Inaktivität. - Diese Werte werden nicht geschätzt, sondern dem Datenblatt des den Controller. Wenn es mehrere Empfangs- oder Übertragungszustände gibt, ist der Durchschnitt dieser Staaten vergeben ist. Außerdem erfasst das System jetzt Daten Low Energy (LE) und Bluetooth-Scans.

Android Ab 7.0 werden die Bluetooth-Leistungswerte für Bluetooth.active nicht mehr verwendet. (wird bei der Audiowiedergabe über Bluetooth A2DP verwendet) und Bluetooth.on (verwendet, wenn Bluetooth ist aktiviert, aber inaktiv).
Bluetooth-Controller.rx Durchschnittliche Stromaufnahme (mA) des Bluetooth-Controllers beim Empfang. -
Bluetooth.controller.tx Durchschnittliche Stromaufnahme (mA) des Bluetooth-Controllers bei der Übertragung. -
Bluetooth.controller.spannungs Durchschnittliche Betriebsspannung (mV) des Bluetooth-Controllers. -
Modem.controller.sleep Durchschnittliche Stromaufnahme (mA) des Modem-Controllers im Ruhemodus. 0 mA Diese Werte sind keine Schätzungen, sondern stammen aus dem Datenblatt des Controllers. Wenn es mehrere Empfangsstatus gibt, wird der Durchschnitt dieser Status verwendet. Wenn es mehrere Übertragungsstatus haben, das Angeben eines Werts für jeden Übertragungsstatus wird unterstützt ab Android 9.
Modem.controller.idle Durchschnittliche Stromaufnahme (mA) des Modem-Controllers bei Inaktivität. -
Modem.controller.rx Durchschnittliche Stromaufnahme (mA) des Modem-Controllers beim Empfang. -
Modem.controller.tx Durchschnittliche Stromaufnahme (mA) des Modem-Controllers bei der Übertragung mit unterschiedlicher HF-Leistung Niveau. Dies ist ein Eintrag mit mehreren Werten und einem Wert pro Sendeleistung. 100 mA, 200 mA, 300 mA, 400 mA, 500 mA
Modem.controller.spannung Durchschnittliche Betriebsspannung (mV) der Modemsteuerung. -
wifi.controller.idle Durchschnittliche Stromaufnahme (mA) des WLAN-Controllers bei Inaktivität. - Diese Werte werden nicht geschätzt, sondern dem Datenblatt des den Controller. Wenn es mehrere Empfangs- oder Übertragungszustände gibt, ist der Durchschnitt dieser Staaten vergeben ist.
wifi.controller.rx Durchschnittliche Stromaufnahme (mA) des WLAN-Controllers beim Empfang. -
wifi.controller.tx Durchschnittliche Stromaufnahme (mA) des WLAN-Controllers bei der Übertragung. -
wifi.controller.voltage Durchschnittliche Betriebsspannung (mV) des WLAN-Controllers. -
cpu.speeds Dies ist ein Eintrag mit mehreren Werten, der jede mögliche CPU-Geschwindigkeit in kHz auflistet. 125.000 kHz, 250.000 kHz, 500.000 kHz, 1000.000 kHz, 1500.000 kHz Die Anzahl und Reihenfolge der Einträge müssen den mA-Einträgen in cpu.active zurück.
cpu.idle Gesamtleistung, die vom System verbraucht wird, wenn CPUs (und das SoC) im System sind gesperrt. 3 mA -
CPU.awake Wenn sich CPUs im Ruhezustand befinden, wird zusätzliche Energie verbraucht (Kernel-Inaktivitätsschleife); Das System befindet sich nicht im System-Sperrstatus. 50 mA Ihre Plattform kann mehrere Inaktivitätsstatus mit unterschiedlichen den Energieverbrauch, repräsentativen Inaktivitätsstatus für längere Zeit auswählen Zeiträume, in denen der Planer inaktiv ist (mehrere Millisekunden). Untersuchen Sie das Leistungsdiagramm auf Ihre Messgeräte und wählen Sie Stichproben mit der niedrigsten CPU-Leistung aus. Verbrauch, wodurch höhere Stichproben verworfen werden, bei denen die CPU im Leerlauf war.
cpu.active Zusätzliche Leistung, die von CPUs bei unterschiedlichen Geschwindigkeiten verbraucht wird. 100 mA, 120 mA, 140 mA, 160 mA, 200 mA Der Wert steht für die Leistung, die von den CPU-Schienen verbraucht wird, wenn sie mit unterschiedlichen Geschwindigkeit. Legen Sie die maximale Geschwindigkeit im Kernel auf alle zulässigen Geschwindigkeiten und Stifte fest die CPU mit dieser Geschwindigkeit. Die Anzahl und Reihenfolge der Einträge entspricht Anzahl und Reihenfolge der Einträge in cpu.speeds.
cpu.clusters.cores Anzahl der Kerne in jedem CPU-Cluster. 4, 2 Nur für Geräte mit heterogener CPU erforderlich Architekturen. Anzahl der Einträge und Reihenfolge muss mit der Anzahl der für cpu.active und cpu.speeds. Der erste Eintrag steht für die Anzahl der CPU-Kerne in Cluster0, steht der zweite Eintrag für die Anzahl der CPU-Kerne in Cluster1 usw.
Akku.Kapazität Gesamtakkukapazität in mAh. 3.000 mAh -

Low Energy (LE) und Bluetooth-Scans

Bei Geräten mit Android 7.0 erhebt das System Daten für Low Energy (LE) Scans und Bluetooth-Netzwerkverkehr (z. B. RFCOMM und L2CAP) und Partner diese Aktivitäten mit der initiierenden App durchführen. Bluetooth-Scans sind verknüpft mit der App, die den Scan initiiert hat, aber Batch-Scans nicht (und werden stattdessen mit der Bluetooth-App verknüpft. Für eine App Scans für N Millisekunden betragen die Kosten für den Scan N Millisekunden der rx-Zeit und N Millisekunden der tx-Zeit. wird die gesamte verbleibende Controller-Zeit zugewiesen den Netzwerkverkehr oder die Bluetooth-App.