Pomiar wartości mocy

Producenci urządzeń musi dostarczyć składnika profil zasilania 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 wykorzystywaną przez urządzenie i wykonuje różne operacje, dla których potrzebne są informacje. Zmierz zużycie energii podczas tych operacji i oblicz wartości (w razie potrzeby wyprowadzając różnice w stosunku do innych podstawowych zastosowań energii).

Ponieważ celem profilu mocy jest odpowiednie oszacowanie zużycia baterii, wartości profilu mocy są podawane w prądach (amperach). Platforma Android mnoży prąd przez czas, przez który podsystem był aktywny i oblicza wartość mAh, która jest następnie używana do oszacowania ilości baterii rozładowanej przez aplikację/podsystem.

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

Urządzenia z heterogenicznymi procesorami

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

  • Całkowita liczba procesorów dla każdego klastra (wyrażona w cpu.clusters.cores).
  • Szybkości procesora obsługiwane przez każdy klaster.
  • Aktywny pobór mocy procesora dla każdego klastra.

Aby odróżnić aktywne zużycie energii przez procesor od obsługiwanych szybkoś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 cpu0-3
  • klaster1 składa się z procesora 4-7

Ramy Android używa tych podstawowych numerów procesora, gdy czyta statystyki z sysfs pliki w: /sys/devices/system/cpu/cpu<number>/cpufreq/stats .

Przykład procesorów i szybkości klastra:

<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 zobaczyć przykładowy plik w AOSP patrz power_profile.xml .

Nazwa Opis Przykładowa wartość Uwagi
otoczenia.wł. Dodatkowa moc używana, gdy ekran jest w trybie drzemki/otoczenia/zawsze włączony zamiast wyłączony. około 100 mA -
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 uż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, przesyła ani nie skanuje. 2 mA -
wifi.aktywne Dodatkowa moc używana podczas przesyłania lub odbierania przez Wi-Fi. 31 mA -
wifi.scan Dodatkowa moc używana, gdy Wi-Fi skanuje punkty dostępu. 100 mA -
audio Dodatkowa moc używana podczas dekodowania/kodowania dźwięku przez DSP. około 10 mA Używany do dźwięku DSP.
wideo Dodatkowa moc używana podczas dekodowania wideo przez DSP. około 50 mA Używany do wideo DSP.
kamera.śr. Średnie zużycie energii przez podsystem kamery dla typowego zastosowania kamery. 600 mA Przeznaczone jako przybliżone oszacowanie dla aplikacji uruchamiającej podgląd i rejestrującej około 10 zdjęć w pełnej rozdzielczości na minutę.
latarka.kamera Średnia moc zużywana przez moduł lampy błyskowej aparatu, gdy jest włączony. 200 mA -
na podstawie jakości sygnału gps Dodatkowa moc wykorzystywana przez GPS na podstawie siły sygnału. Jest to wpis wielowartościowy, po jednym na siłę sygnału, od najsłabszego do najsilniejszego. 30mA, 10mA -
gps.wł. Dodatkowa moc używana, gdy GPS odbiera sygnał. 50 mA -
radioaktywny Dodatkowa moc używana podczas nadawania/odbierania radia komórkowego. 100 mA-300 mA -
radio.skanowanie Dodatkowa moc wykorzystywana, gdy radio komórkowe dzwoni do wieży. 1,2 mA -
radio.wł. Dodatkowa moc używana, gdy radio komórkowe jest włączone. Jest to wpis wielowartościowy, po jednym na siłę sygnału (brak sygnału, słaby, umiarkowany, 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 jest używana dla braku sygnału, druga wartość jest używana 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 pobierane z karty katalogowej sterownika. Jeśli istnieje wiele stanów odbioru lub transmisji, pobierana jest średnia z tych stanów. Ponadto, system teraz zbiera dane dla Low Energy (LE) i skanów Bluetooth .

Android 7.0 i nowsze nie używają już wartości mocy Bluetooth dla bluetooth.active (używanych podczas odtwarzania dźwięku przez Bluetooth A2DP) i bluetooth.on (używanych, gdy Bluetooth jest włączony, ale bezczynny).
bluetooth.kontroler.rx Średni pobór prądu (mA) kontrolera Bluetooth podczas odbioru. -
bluetooth.kontroler.txt Średni pobór prądu (mA) kontrolera Bluetooth podczas transmisji. -
napięcie.kontrolera.bluetooth Średnie napięcie robocze (mV) kontrolera Bluetooth. -
modem.kontroler.sen Średni pobór prądu (mA) kontrolera modemu w stanie uśpienia. 0 mA Wartości te nie są szacunkowe, lecz pobierane 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) kontrolera modemu podczas odbioru. -
modem.kontroler.txt Średni pobór prądu (mA) kontrolera modemu podczas transmisji przy różnych poziomach mocy RF. Jest to wpis wielowartościowy z jedną wartością na poziom mocy nadawania. 100 mA, 200 mA, 300 mA, 400 mA, 500 mA
napięcie.modemu.sterownika Średnie napięcie robocze (mV) kontrolera modemu. -
wifi.kontroler.bezczynny Średni pobór prądu (mA) kontrolera Wi-Fi w stanie bezczynności. - Wartości te nie są szacunkowe, lecz pobierane z karty katalogowej sterownika. Jeśli istnieje wiele stanów odbioru lub transmisji, pobierana jest średnia z tych stanów.
wifi.kontroler.rx Średni pobór prądu (mA) kontrolera Wi-Fi podczas odbioru. -
wifi.kontroler.txt Średni pobór prądu (mA) kontrolera Wi-Fi podczas transmisji. -
wifi.napięcie.kontrolera Średnie napięcie robocze (mV) kontrolera Wi-Fi. -
prędkość.procesora Jest to wpis wielowartościowy, który wymienia każdą możliwą szybkość 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.
procesor.bezczynny Całkowita moc pobierana przez system, gdy procesory (i SoC) są w stanie zawieszenia systemu. 3 mA -
procesor.obudzony Dodatkowa moc używana, gdy procesory są w stanie harmonogramu 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 przy różnych poziomach zużycia energii; wybierz reprezentatywny stan bezczynności dla dłuższych okresów bezczynności harmonogramu (kilka milisekund). Sprawdź wykres mocy na swoim sprzęcie pomiarowym i wybierz próbki, w których procesor jest najmniej zużywany, odrzucając wyższe próbki, gdy procesor był bezczynny.
procesor.aktywny Dodatkowa moc wykorzystywana przez procesory podczas pracy z różnymi prędkościami. 100 mA, 120 mA, 140 mA, 160 mA, 200 mA 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 tej prędkości. 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 dla urządzeń z heterogenicznych 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 klastrze0, drugi wpis reprezentuje liczbę rdzeni procesora w klastrze1 i tak dalej.
pojemność baterii Całkowita pojemność baterii w mAh. 3000 mAh -

Skanowanie Low Energy (LE) i Bluetooth

W przypadku urządzeń z systemem Android 7.0 system zbiera dane dla skanowań Low Energy (LE) i ruchu sieciowego Bluetooth (takich jak RFCOMM i L2CAP) i kojarzy te działania z aplikacją inicjującą. Skanowania Bluetooth są skojarzone z aplikacją, która zainicjowała skanowanie, ale skanowania wsadowe nie są (i są skojarzone 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 przypisywany do ruchu sieciowego lub aplikacji Bluetooth.