Pomiar wartości mocy

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

Aby określić wartości profili mocy, użyj sprzętu mierzącego moc zużywaną przez urządzenie i wykonaj różne operacje, do których potrzebne są informacje. Zmierz zużycie energii podczas tych operacji i oblicz wartości (wyprowadzając różnice z innych bazowych zastosowań mocy, jeśli to konieczne).

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

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

Urządzenia z heterogenicznymi procesorami

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

  • Całkowita 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ć pomiędzy aktywnym zużyciem energii procesora a obsługiwaną szybkością procesora dla klastrów, dołącz numer klastra do nazwy tablicy. Numery klastrów są przypisywane w kolejności rdzeni procesora w drzewie urządzeń jądra. Na przykład w architekturze heterogenicznej, która ma dwa (2) klastry z czterema (4) rdzeniami:

  • klaster0 składa się z procesora0-3
  • klaster1 składa się z procesora 4-7

Struktura systemu Android używa tych numerów rdzeni procesora podczas odczytu statystyk z plików sysfs w: /sys/devices/system/cpu/cpu<number>/cpufreq/stats .

Przykład procesorów i prędkoś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

Poniższa tabela opisuje dostępne ustawienia wartości mocy. Aby wyświetlić przykładowy plik w AOSP, zobacz power_profile.xml .

Nazwa Opis Przykładowa wartość Notatki
otoczenie.wł Dodatkowa moc zużywana, gdy ekran jest w trybie drzemki/otoczenia/zawsze włączony, a nie wyłączony. około 100 mA -
Na ekranie Dodatkowa moc zuż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 w Androidzie, które zwykle wynosi 10 lub 20%.
ekran.pełny Dodatkowa moc zużywana, gdy ekran ma maksymalną jasność, w porównaniu do ekranu o minimalnej jasności. 100 mA-300 mA Część tej wartości (w oparciu o jasność ekranu) jest dodawana do wartości screen.on w celu obliczenia zużycia energii przez ekran.
Wi-Fi.wł Dodatkowa moc zużywana, gdy Wi-Fi jest włączone, ale nie odbiera, nie transmituje ani nie skanuje. 2 mA -
Wi-Fi.aktywne Dodatkowa moc wykorzystywana podczas transmisji lub odbioru przez Wi-Fi. 31 mA -
skanowanie Wi-Fi Dodatkowa moc zużywana podczas skanowania sieci Wi-Fi w poszukiwaniu punktów dostępu. 100 mA -
audio Dodatkowa moc wykorzystywana podczas dekodowania/kodowania dźwięku poprzez DSP. około 10 mA Używany do dźwięku DSP.
wideo Dodatkowa moc wykorzystywana podczas dekodowania wideo poprzez DSP. około 50 mA Używany do wideo DSP.
kamera.średnia Średnie zużycie energii przez podsystem kamery w typowym zastosowaniu kamery. 600 mA Przeznaczony do przybliżonego oszacowania dla aplikacji uruchamiającej podgląd i przechwytującej około 10 zdjęć w pełnej rozdzielczości na minutę.
aparat.latarka Średni pobór mocy modułu lampy błyskowej aparatu, gdy jest włączony. 200 mA -
w oparciu o jakość sygnału GPS Dodatkowa moc wykorzystywana przez GPS na podstawie siły sygnału. Jest to wpis wielowartościowy, po jednej na siłę sygnału, od najsłabszego do najsilniejszego. 30 mA, 10 mA -
gps.wł Dodatkowa moc wykorzystywana podczas odbierania sygnału przez GPS. 50 mA -
radioaktywny Dodatkowa moc wykorzystywana podczas nadawania/odbioru radia komórkowego. 100 mA-300 mA -
skanowanie.radiowe Dodatkowa moc wykorzystywana podczas przywoływania wieży przez radio komórkowe. 1,2 mA -
radio.wł Dodatkowa moc zużywana, gdy włączone jest radio komórkowe. Jest to wpis wielowartościowy, po jednej dla siły 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 zmniejszać się 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 w przypadku braku sygnału, druga wartość zostanie użyta w przypadku wszystkich pozostałych mocy i tak dalej.
kontroler.bluetooth.idle Średni pobór prądu (mA) kontrolera Bluetooth w stanie bezczynności. - Wartości te nie są szacunkowe, ale wzięte z arkusza danych sterownika. Jeśli istnieje wiele stanów odbioru lub nadawania, brana jest średnia z tych stanów. Ponadto system zbiera teraz dane dotyczące skanów Low Energy (LE) i Bluetooth .

Android 7.0 i nowsze wersje nie korzystają już z wartości mocy Bluetooth dla bluetooth.active (używanego podczas odtwarzania dźwięku przez Bluetooth A2DP) i bluetooth.on (używanego, gdy Bluetooth jest włączony, ale bezczynny).
kontroler.bluetooth.rx Średni pobór prądu (mA) przez kontroler Bluetooth podczas odbioru. -
kontroler.bluetooth.tx Średni pobór prądu (mA) przez kontroler Bluetooth podczas transmisji. -
napięcie.kontrolera.bluetooth Średnie napięcie robocze (mV) kontrolera Bluetooth. -
tryb.uśpienia modemu.kontrolera Średni pobór prądu (mA) przez kontroler modemu w stanie uśpienia. 0 mA Wartości te nie są szacunkowe, ale wzięte z arkusza danych sterownika. Jeśli istnieje wiele stanów odbierania, brana jest średnia z tych stanów. Jeśli istnieje wiele stanów transmisji, określenie 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) przez kontroler modemu w stanie bezczynności. -
modem.kontroler.rx Średni pobór prądu (mA) przez kontroler modemu podczas odbioru. -
modem.kontroler.tx Średni pobór prądu (mA) przez kontroler modemu podczas transmisji przy różnych poziomach mocy RF. Jest to wpis wielowartościowy z jedną wartością na każdy poziom mocy nadawania. 100 mA, 200 mA, 300 mA, 400 mA, 500 mA
napięcie.modemu.kontrolera Średnie napięcie robocze (mV) kontrolera modemu. -
kontroler.wifi.bezczynny Średni pobór prądu (mA) kontrolera Wi-Fi w stanie bezczynności. - Wartości te nie są szacunkowe, ale wzięte z arkusza danych sterownika. Jeśli istnieje wiele stanów odbioru lub nadawania, brana jest średnia z tych stanów.
kontroler.wifi.rx Średni pobór prądu (mA) przez kontroler Wi-Fi podczas odbioru. -
kontroler.wifi.tx Średni pobór prądu (mA) przez kontroler Wi-Fi podczas transmisji. -
napięcie.kontrolera.Wi-Fi Ś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.
procesor.bezczynny Całkowita moc pobierana przez system, gdy procesory (i SoC) znajdują się w stanie zawieszenia systemu. 3 mA -
wybudzenie procesora Dodatkowa moc używana, gdy procesory znajdują się w planowanym stanie bezczynności (pętla bezczynności jądra); system nie jest w stanie zawieszenia. 50 mA Twoja platforma może mieć więcej niż jeden stan bezczynności i różne poziomy 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 zakończył stan bezczynności.
procesor.aktywny Dodatkowa moc zużywana 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ść jądra na każdą z dozwolonych prędkości i ustaw procesor na tę prędkość. Liczba i kolejność wpisów odpowiadają liczbie i kolejności wpisów w cpu.speeds.
cpu.clusters.cores Liczba rdzeni, które zawiera każdy klaster procesora. 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. 3000 mAh -

Skanowanie niskoenergetyczne (LE) i Bluetooth

W przypadku urządzeń z systemem Android 7.0 system zbiera dane dotyczące skanów Low Energy (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, natomiast skany wsadowe nie są (zamiast tego są kojarzone 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 przydzielany ruchowi sieciowemu lub aplikacji Bluetooth.