Pomiar wartości mocy

Producenci urządzeń muszą udostępnić profil zasilania składnika w /frameworks/base/core/res/res/xml/power_profile.xml .

Aby określić wartości profili zasilania, użyj sprzętu, który mierzy moc używaną przez urządzenie i wykonaj różne operacje, dla których potrzebne są informacje. Zmierz zużycie energii podczas tych operacji i oblicz wartości (w stosownych przypadkach wywodząc różnice z innych podstawowych zastosowań energii).

Ponieważ celem profilu mocy jest odpowiednie oszacowanie zużycia baterii, wartości profilu mocy są podawane w prądzie (amperach). Framework Androida mnoży prąd przez czas, przez jaki podsystem był aktywny i oblicza wartość mAh, która jest następnie wykorzystywana do oszacowania ilości baterii wyczerpanej przez aplikację/podsystem.

Urządzenia z Bluetooth, modemem i kontrolerami Wi-Fi z systemem Android 7.0 lub nowszym mogą dostarczać dodatkowe wartości mocy uzyskane z danych chipsetu.

Urządzenia z heterogenicznymi procesorami

Profil mocy dla urządzeń z rdzeniami CPU o heterogenicznej architekturze musi zawierać następujące dodatkowe pola:

  • Łączna liczba procesorów dla każdego klastra (wyrażona w cpu.clusters.cores).
  • Prędkości procesora obsługiwane przez każdy klaster.
  • Aktywne zużycie energii procesora dla każdego klastra.

Aby rozróżnić aktywne zużycie energii procesora od obsługiwanych prędkości procesora dla klastrów, dołącz numer klastra do nazwy macierzy. Numery klastrów są przypisywane w kolejności rdzeni procesora w drzewie urządzeń jądra. Na przykład w heterogenicznej architekturze, która ma dwa (2) klastry z czterema (4) rdzeniami:

  • klaster0 składa się z procesora 0-3
  • klaster 1 składa się z procesorów 4-7

Struktura systemu Android używa tych numerów rdzeni procesora, gdy odczytuje statystyki z plików sysfs w: /sys/devices/system/cpu/cpu<number>/cpufreq/stats .

Przykład procesorów klastra i prędkości:

<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>

Wartości mocy

W poniższej tabeli opisano dostępne ustawienia wartości mocy. Aby wyświetlić przykładowy plik w AOSP, zobacz power_profile.xml .

Nazwa Opis Przykładowa wartość Notatki
otoczenia.wł Dodatkowa moc używana, gdy ekran jest w trybie drzemki/ambient/zawsze włączony zamiast wyłączonego. około 100mA -
Na ekranie Dodatkowa moc używana, gdy ekran jest włączony przy minimalnej jasności. 200 mA Zawiera kontroler dotykowy i podświetlenie wyświetlacza. Przy jasności 0, a nie minimum Androida, które zwykle wynosi 10 lub 20%.
ekran.pełny Dodatkowa moc zużywana, gdy ekran ma maksymalną jasność w porównaniu z ekranem o minimalnej jasności. 100 mA-300 mA Ułamek tej wartości (na podstawie jasności ekranu) jest dodawany do wartości screen.on w celu obliczenia zużycia energii przez ekran.
wifi.wł Dodatkowa moc używana, gdy Wi-Fi jest włączone, ale nie odbiera, nie przesyła ani nie skanuje. 2mA -
wifi.aktywne Dodatkowa moc używana podczas nadawania lub odbierania przez Wi-Fi. 31mA -
wifi.scan Dodatkowa moc używana podczas wyszukiwania punktów dostępu przez Wi-Fi. 100 mA -
audio Dodatkowa moc używana podczas dekodowania/kodowania dźwięku przez DSP. około 10mA Używany do dźwięku DSP.
wideo Dodatkowa moc używana podczas dekodowania wideo przez DSP. około 50mA Używany do wideo DSP.
śr.kamery Średnie zużycie energii przez podsystem kamery dla typowego zastosowania kamery. 600 mA Ma służyć jako przybliżone oszacowanie dla aplikacji uruchamiającej podgląd i przechwytującej około 10 obrazów w pełnej rozdzielczości na minutę.
kamera.latarka Średnia moc zużywana przez włączoną lampę błyskową aparatu. 200 mA -
gps.oparte na jakości sygnału Dodatkowa moc wykorzystywana przez GPS na podstawie siły sygnału. Jest to wpis wielowartościowy, po jednym dla siły sygnału, od najsłabszego do najsilniejszego. 30mA, 10mA -
gps wł Dodatkowa moc używana, gdy GPS odbiera sygnał. 50 mA -
radioaktywny Dodatkowa moc wykorzystywana podczas nadawania/odbioru radia komórkowego. 100 mA-300 mA -
skanowanie radia Dodatkowa moc wykorzystywana podczas przywoływania wieży przez radio komórkowe. 1,2 mA -
radio.wł Dodatkowa moc używana, gdy radio komórkowe jest włączone. Jest to wpis wielowartościowy, po jednym dla siły sygnału (brak sygnału, słaby, średni, silny). 1,2 mA Niektóre radia zwiększają moc, gdy szukają wieży komórkowej i nie wykrywają sygnału. Wartości mogą być takie same lub maleć wraz ze wzrostem siły sygnału. Jeśli podasz tylko jedną wartość, ta sama wartość zostanie użyta dla wszystkich mocnych stron. Jeśli podasz dwie wartości, pierwsza zostanie użyta dla braku sygnału, druga dla wszystkich innych mocy i tak dalej.
Kontroler.Bluetooth.Bezczynny Średni pobór prądu (mA) kontrolera Bluetooth w stanie bezczynności. - Wartości te nie są szacunkowe, lecz wzięte z karty katalogowej sterownika. Jeśli istnieje wiele stanów odbioru lub transmisji, brana jest średnia z tych stanów. Ponadto system zbiera teraz dane dla skanów Low Energy (LE) i Bluetooth .

Android 7.0 i nowsze wersje nie używają już wartości mocy Bluetooth dla bluetooth.active (używane podczas odtwarzania dźwięku przez Bluetooth A2DP) i bluetooth.on (używane, gdy Bluetooth jest włączony, ale nieaktywny).
bluetooth.kontroler.rx Średni pobór prądu (mA) kontrolera Bluetooth podczas odbioru. -
bluetooth.kontroler.tx Średni pobór prądu (mA) kontrolera Bluetooth podczas transmisji. -
napięcie.sterownika.bluetooth Średnie napięcie robocze (mV) kontrolera Bluetooth. -
modem.kontroler.uśpienie Średni pobór prądu (mA) sterownika modemu w stanie uśpienia. 0 mA Wartości te nie są szacunkowe, lecz wzięte z karty katalogowej sterownika. Jeśli istnieje wiele stanów odbioru, brana jest średnia z tych stanów. Jeśli istnieje wiele stanów transmisji, określanie wartości dla każdego stanu transmisji jest obsługiwane począwszy od systemu Android 9.
modem.kontroler.bezczynny Średni pobór prądu (mA) kontrolera modemu w stanie bezczynności. -
modem.kontroler.rx Średni pobór prądu (mA) sterownika modemu podczas odbioru. -
modem.kontroler.tx Średni pobór prądu (mA) sterownika modemu podczas nadawania przy różnych poziomach mocy RF. Jest to wpis wielowartościowy z jedną wartością na poziom mocy nadawania. 100mA, 200mA, 300mA, 400mA, 500mA
napięcie.kontrolera.modemu Średnie napięcie robocze (mV) sterownika modemu. -
wifi.kontroler.bezczynny Średni pobór prądu (mA) kontrolera Wi-Fi w stanie bezczynności. - Wartości te nie są szacunkowe, lecz wzięte z karty katalogowej sterownika. Jeśli istnieje wiele stanów odbioru lub transmisji, brana jest średnia z tych stanów.
wifi.kontroler.rx Średni pobór prądu (mA) kontrolera Wi-Fi podczas odbioru. -
wifi.kontroler.tx Średni pobór prądu (mA) kontrolera Wi-Fi podczas transmisji. -
napięcie.kontrolera.wifi Średnie napięcie robocze (mV) kontrolera Wi-Fi. -
prędkość procesora Jest to wpis wielowartościowy, który zawiera listę wszystkich możliwych szybkości procesora w kHz. 125000 kHz, 250000 kHz, 500000 kHz, 1000000 kHz, 1500000 kHz Liczba i kolejność wpisów musi odpowiadać wpisom mA w cpu.active.
bezczynność procesora Całkowita moc pobierana przez system, gdy procesory (i SoC) są w stanie wstrzymania systemu. 3mA -
Procesor obudzony Dodatkowa moc używana, gdy procesory są w stanie planowania bezczynności (pętla bezczynności jądra); system nie jest w stanie zawieszenia systemu. 50 mA Twoja platforma może mieć więcej niż jeden stan bezczynności z różnymi poziomami zużycia energii; wybierz reprezentatywny stan bezczynności dla dłuższych okresów bezczynności programu planującego (kilka milisekund). Sprawdź wykres mocy na swoim sprzęcie pomiarowym i wybierz próbki, w których procesor zużywa najmniej energii, odrzucając wyższe próbki, w których procesor wyszedł z bezczynności.
procesor.aktywny Dodatkowa moc zużywana przez procesory podczas pracy z różnymi prędkościami. 100mA, 120mA, 140mA, 160mA, 200mA Wartość reprezentuje moc zużywaną przez szyny procesora podczas pracy z różnymi prędkościami. Ustaw maksymalną prędkość w jądrze na każdą z dozwolonych prędkości i ustaw procesor na tę prędkość. Liczba i kolejność wpisów odpowiada liczbie i kolejności wpisów w cpu.speeds.
cpu.clusters.cores Liczba rdzeni, które zawiera każdy klaster procesorów. 4, 2 Wymagane tylko w przypadku urządzeń z heterogeniczną architekturą procesora . Liczba wpisów i kolejność powinny odpowiadać liczbie wpisów klastra dla cpu.active i cpu.speeds. Pierwszy wpis reprezentuje liczbę rdzeni procesora w klastrze 0, drugi wpis reprezentuje liczbę rdzeni procesora w klastrze 1 i tak dalej.
pojemność baterii Całkowita pojemność baterii w mAh. 3000mAh -

Skanowanie o niskim zużyciu energii (LE) i Bluetooth

W przypadku urządzeń z systemem Android 7.0 system zbiera dane dotyczące skanowań o niskim zużyciu energii (LE) i ruchu sieciowego Bluetooth (takiego jak RFCOMM i L2CAP) i kojarzy te działania z aplikacją inicjującą. Skanowania Bluetooth są powiązane z aplikacją, która zainicjowała skanowanie, ale skany wsadowe nie są (i zamiast tego są powiązane z aplikacją Bluetooth). W przypadku skanowania aplikacji przez N milisekund koszt skanowania wynosi N milisekund czasu rx i N milisekund czasu tx; cały pozostały czas kontrolera jest przypisany do ruchu sieciowego lub aplikacji Bluetooth.

,

Producenci urządzeń muszą udostępnić profil zasilania składnika w /frameworks/base/core/res/res/xml/power_profile.xml .

Aby określić wartości dla profili mocy, użyj sprzętu, który mierzy moc używaną przez urządzenie i wykonaj różne operacje, dla których potrzebne są informacje. Zmierz zużycie energii podczas tych operacji i oblicz wartości (w stosownych przypadkach wywodząc różnice z innych podstawowych zastosowań energii).

Ponieważ celem profilu mocy jest odpowiednie oszacowanie zużycia baterii, wartości profilu mocy są podawane w prądzie (amperach). Framework Androida mnoży prąd przez czas, przez jaki podsystem był aktywny i oblicza wartość mAh, która jest następnie wykorzystywana do oszacowania ilości baterii wyczerpanej przez aplikację/podsystem.

Urządzenia z Bluetooth, modemem i kontrolerami Wi-Fi z systemem Android 7.0 lub nowszym mogą dostarczać dodatkowe wartości mocy uzyskane z danych chipsetu.

Urządzenia z heterogenicznymi procesorami

Profil mocy dla urządzeń z rdzeniami CPU o heterogenicznej architekturze musi zawierać następujące dodatkowe pola:

  • Łączna liczba procesorów dla każdego klastra (wyrażona w cpu.clusters.cores).
  • Prędkości procesora obsługiwane przez każdy klaster.
  • Aktywne zużycie energii procesora dla każdego klastra.

Aby rozróżnić aktywne zużycie energii procesora od obsługiwanych prędkości procesora dla klastrów, dołącz numer klastra do nazwy macierzy. Numery klastrów są przypisywane w kolejności rdzeni procesora w drzewie urządzeń jądra. Na przykład w heterogenicznej architekturze, która ma dwa (2) klastry z czterema (4) rdzeniami:

  • klaster0 składa się z procesora 0-3
  • klaster 1 składa się z procesorów 4-7

Struktura systemu Android używa tych numerów rdzeni procesora, gdy odczytuje statystyki z plików sysfs w: /sys/devices/system/cpu/cpu<number>/cpufreq/stats .

Przykład procesorów klastra i prędkości:

<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>

Wartości mocy

W poniższej tabeli opisano dostępne ustawienia wartości mocy. Aby wyświetlić przykładowy plik w AOSP, zobacz power_profile.xml .

Nazwa Opis Przykładowa wartość Notatki
otoczenia.wł Dodatkowa moc używana, gdy ekran jest w trybie drzemki/ambient/zawsze włączony zamiast wyłączonego. około 100mA -
Na ekranie Dodatkowa moc używana, gdy ekran jest włączony przy minimalnej jasności. 200 mA Zawiera kontroler dotykowy i podświetlenie wyświetlacza. Przy jasności 0, a nie minimum Androida, które zwykle wynosi 10 lub 20%.
ekran.pełny Dodatkowa moc zużywana, gdy ekran ma maksymalną jasność w porównaniu z ekranem o minimalnej jasności. 100 mA-300 mA Ułamek tej wartości (na podstawie jasności ekranu) jest dodawany do wartości screen.on w celu obliczenia zużycia energii przez ekran.
wifi.wł Dodatkowa moc używana, gdy Wi-Fi jest włączone, ale nie odbiera, nie przesyła ani nie skanuje. 2mA -
wifi.aktywne Dodatkowa moc używana podczas nadawania lub odbierania przez Wi-Fi. 31mA -
wifi.scan Dodatkowa moc używana podczas wyszukiwania punktów dostępu przez Wi-Fi. 100 mA -
audio Dodatkowa moc używana podczas dekodowania/kodowania dźwięku przez DSP. około 10mA Używany do dźwięku DSP.
wideo Dodatkowa moc używana podczas dekodowania wideo przez DSP. około 50mA Używany do wideo DSP.
śr.kamery Średnie zużycie energii przez podsystem kamery dla typowego zastosowania kamery. 600 mA Ma służyć jako przybliżone oszacowanie dla aplikacji uruchamiającej podgląd i przechwytującej około 10 obrazów w pełnej rozdzielczości na minutę.
kamera.latarka Średnia moc zużywana przez włączoną lampę błyskową aparatu. 200 mA -
gps.oparte na jakości sygnału Dodatkowa moc wykorzystywana przez GPS na podstawie siły sygnału. Jest to wpis wielowartościowy, po jednym dla siły sygnału, od najsłabszego do najsilniejszego. 30mA, 10mA -
gps wł Dodatkowa moc używana, gdy GPS odbiera sygnał. 50 mA -
radioaktywny Dodatkowa moc wykorzystywana podczas nadawania/odbioru radia komórkowego. 100 mA-300 mA -
skanowanie radia Dodatkowa moc wykorzystywana podczas przywoływania wieży przez radio komórkowe. 1,2 mA -
radio.wł Dodatkowa moc używana, gdy radio komórkowe jest włączone. Jest to wpis wielowartościowy, po jednym dla siły sygnału (brak sygnału, słaby, średni, silny). 1,2 mA Niektóre radia zwiększają moc, gdy szukają wieży komórkowej i nie wykrywają sygnału. Wartości mogą być takie same lub maleć wraz ze wzrostem siły sygnału. Jeśli podasz tylko jedną wartość, ta sama wartość zostanie użyta dla wszystkich mocnych stron. Jeśli podasz dwie wartości, pierwsza zostanie użyta dla braku sygnału, druga dla wszystkich innych mocy i tak dalej.
Kontroler.Bluetooth.Bezczynny Średni pobór prądu (mA) kontrolera Bluetooth w stanie bezczynności. - Wartości te nie są szacunkowe, lecz wzięte z karty katalogowej sterownika. Jeśli istnieje wiele stanów odbioru lub transmisji, brana jest średnia z tych stanów. Ponadto system zbiera teraz dane dla skanów Low Energy (LE) i Bluetooth .

Android 7.0 i nowsze wersje nie używają już wartości mocy Bluetooth dla bluetooth.active (używane podczas odtwarzania dźwięku przez Bluetooth A2DP) i bluetooth.on (używane, gdy Bluetooth jest włączony, ale nieaktywny).
bluetooth.kontroler.rx Średni pobór prądu (mA) kontrolera Bluetooth podczas odbioru. -
bluetooth.kontroler.tx Średni pobór prądu (mA) kontrolera Bluetooth podczas transmisji. -
napięcie.sterownika.bluetooth Średnie napięcie robocze (mV) kontrolera Bluetooth. -
modem.kontroler.uśpienie Średni pobór prądu (mA) sterownika modemu w stanie uśpienia. 0 mA Wartości te nie są szacunkowe, lecz wzięte z karty katalogowej sterownika. Jeśli istnieje wiele stanów odbioru, brana jest średnia z tych stanów. Jeśli istnieje wiele stanów transmisji, określanie wartości dla każdego stanu transmisji jest obsługiwane począwszy od systemu Android 9.
modem.kontroler.bezczynny Średni pobór prądu (mA) kontrolera modemu w stanie bezczynności. -
modem.kontroler.rx Średni pobór prądu (mA) sterownika modemu podczas odbioru. -
modem.kontroler.tx Średni pobór prądu (mA) sterownika modemu podczas nadawania przy różnych poziomach mocy RF. Jest to wpis wielowartościowy z jedną wartością na poziom mocy nadawania. 100mA, 200mA, 300mA, 400mA, 500mA
napięcie.kontrolera.modemu Średnie napięcie robocze (mV) sterownika modemu. -
wifi.kontroler.bezczynny Średni pobór prądu (mA) kontrolera Wi-Fi w stanie bezczynności. - Wartości te nie są szacunkowe, lecz wzięte z karty katalogowej sterownika. Jeśli istnieje wiele stanów odbioru lub transmisji, brana jest średnia z tych stanów.
wifi.kontroler.rx Średni pobór prądu (mA) kontrolera Wi-Fi podczas odbioru. -
wifi.kontroler.tx Średni pobór prądu (mA) kontrolera Wi-Fi podczas transmisji. -
napięcie.kontrolera.wifi Średnie napięcie robocze (mV) kontrolera Wi-Fi. -
prędkość procesora Jest to wpis wielowartościowy, który zawiera listę wszystkich możliwych szybkości procesora w kHz. 125000 kHz, 250000 kHz, 500000 kHz, 1000000 kHz, 1500000 kHz Liczba i kolejność wpisów musi odpowiadać wpisom mA w cpu.active.
bezczynność procesora Całkowita moc pobierana przez system, gdy procesory (i SoC) są w stanie wstrzymania systemu. 3mA -
Procesor obudzony Dodatkowa moc używana, gdy procesory są w stanie planowania bezczynności (pętla bezczynności jądra); system nie jest w stanie zawieszenia systemu. 50 mA Twoja platforma może mieć więcej niż jeden stan bezczynności z różnymi poziomami zużycia energii; wybierz reprezentatywny stan bezczynności dla dłuższych okresów bezczynności programu planującego (kilka milisekund). Sprawdź wykres mocy na swoim sprzęcie pomiarowym i wybierz próbki, w których procesor zużywa najmniej energii, odrzucając wyższe próbki, w których procesor wyszedł z bezczynności.
procesor.aktywny Dodatkowa moc zużywana przez procesory podczas pracy z różnymi prędkościami. 100mA, 120mA, 140mA, 160mA, 200mA Wartość reprezentuje moc zużywaną przez szyny procesora podczas pracy z różnymi prędkościami. Ustaw maksymalną prędkość w jądrze na każdą z dozwolonych prędkości i ustaw procesor na tę prędkość. Liczba i kolejność wpisów odpowiada liczbie i kolejności wpisów w cpu.speeds.
cpu.clusters.cores Liczba rdzeni, które zawiera każdy klaster procesorów. 4, 2 Wymagane tylko w przypadku urządzeń z heterogeniczną architekturą procesora . Liczba wpisów i kolejność powinny odpowiadać liczbie wpisów klastra dla cpu.active i cpu.speeds. Pierwszy wpis reprezentuje liczbę rdzeni procesora w klastrze 0, drugi wpis reprezentuje liczbę rdzeni procesora w klastrze 1 i tak dalej.
pojemność baterii Całkowita pojemność baterii w mAh. 3000mAh -

Skanowanie o niskim zużyciu energii (LE) i Bluetooth

W przypadku urządzeń z systemem Android 7.0 system zbiera dane dotyczące skanowań o niskim zużyciu energii (LE) i ruchu sieciowego Bluetooth (takiego jak RFCOMM i L2CAP) i kojarzy te działania z aplikacją inicjującą. Skanowania Bluetooth są powiązane z aplikacją, która zainicjowała skanowanie, ale skany wsadowe nie są (i zamiast tego są powiązane z aplikacją Bluetooth). W przypadku skanowania aplikacji przez N milisekund koszt skanowania wynosi N milisekund czasu rx i N milisekund czasu tx; cały pozostały czas kontrolera jest przypisany do ruchu sieciowego lub aplikacji Bluetooth.