Pomiar wartości mocy

Producenci urządzeń muszą podać profil zasilania komponentu w /frameworks/base/core/res/res/xml/power_profile.xml

Aby określić wartości profili mocy, użyj sprzętu do pomiaru mocy używanych przez urządzenie i wykonywać różne operacje, Potrzebujemy informacji. Mierz zużycie energii podczas tych operacji i obliczaj obliczenia wartości (obliczając różnice w zależności od innych zastosowań mocy bazowej).

Celem profilu zasilania jest odpowiednie szacowanie zużycia baterii, wartości profilu mocy są podane w natężeniu prądu (w amp). Struktura Androida mnoży bieżącą wartość przez czas, w którym podsystem był aktywny oraz oblicza wartość w mAh, która jest następnie używana do szacowania poziomu naładowania baterii które nie są usuwane przez aplikację lub podsystem.

Urządzenia z Bluetoothem, modemem i kontrolerami Wi-Fi z Androidem 7.0 lub większa może zapewniać dodatkowe wartości mocy uzyskane z danych chipsetu.

Urządzenia z procesorami heterogenicznymi

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

  • Łączna liczba procesorów dla każdego klastra (wyrażona w cpu.clusters.cores).
  • Szybkości procesora obsługiwane przez każdy klaster.
  • Zużycie energii przez aktywny procesor w każdym klastrze.

Aby odróżnić zużycie energii przez aktywny procesor od obsługiwanego procesora dla klastrów, do nazwy tablicy dołącz numer klastra. Klaster są przypisywane według kolejności rdzeni procesora w drzewie urządzenia jądra. Dla: na przykład w heterogenicznej architekturze, która zawiera dwa (2) klastry z czterema (4) rdzenie:

  • klaster0 składa się z procesorów 3
  • klaster1 składa się z procesorów 4-7

Platforma Androida używa tych liczb rdzeni procesora podczas odczytywania statystyk z sysfs plików 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 tabeli poniżej znajdziesz opis dostępnych ustawień wartości mocy. Aby wyświetlić przykładowego pliku w AOSP, zobacz power_profile.xml.

Nazwa Opis Przykładowa wartość Uwagi
wygaszacz z powiadomieniami Dodatkowa moc zużywana, gdy ekran jest w trybie uśpienia, trybu nieaktywnego lub stałego włączonego. ok. 100 mA -
screen.on. Dodatkowe zużycie energii zużywane po włączeniu ekranu z minimalną jasnością. 200 mA Obejmuje kontroler dotykowy i podświetlenie wyświetlacza. Przy 0 poziomie jasności Android, który zwykle wynosi 10 lub 20%.
screen.full Dodatkowe zużycie energii przy maksymalnej jasności ekranu w porównaniu z przy minimalnej jasności ekranu. 100 mA–300 mA Część tej wartości (na podstawie jasności ekranu) jest dodawana do pola screen.on, aby obliczać zużycie energii przez ekran.
wifi.on Dodatkowe zużycie energii, gdy sieć Wi-Fi jest włączona, ale nie odbiera połączenia, transmisji lub skanowania. 2 mA -
wifi.aktywne Dodatkowa moc używana podczas transmisji lub odbierania przez Wi-Fi. 31 mA -
wifi.scan Dodatkowe zużycie energii podczas wyszukiwania punktów dostępu przez Wi-Fi. 100 mA -
ścieżkom audio Dodatkowa moc zużywana przy dekodowaniu/kodowaniu dźwięku przez DSP. ok. 10 mA Służy do obsługi dźwięku na DSP.
film Dodatkowa moc zużywana przy dekodowaniu wideo przez DSP. ok. 50 mA Służy do obsługi wideo na procesorach DSP.
aparat.śr. Średnie zużycie energii przez podsystem kamery w przypadku typowego aparatu . 600 mA Rola ta ma charakter orientacyjny i służy do oszacowania w przypadku aplikacji z włączonym podglądem. i robienie około 10 zdjęć w pełnej rozdzielczości na minutę.
aparat.latarka Średnia moc zużywana przez moduł lampy błyskowej aparatu, gdy jest włączony. 200 mA -
gps.signalqualitybased Dodatkowa moc GPS zależna od siły sygnału. Jest to wpis z wieloma wartościami, po jednym na siłę sygnału, od najsłabszego do najsilniejszego. 30 mA, 10 mA -
GPS.on Dodatkowa moc zużywana, gdy GPS rejestruje sygnał. 50 mA -
radio.aktywny Dodatkowa moc używana podczas transmisji/odbierania przez sieć komórkową. 100 mA–300 mA -
radio.scanning Dodatkowa moc zużywana podczas stronicowania wieży przez radio komórkowe. 1,2 mA -
radio.on Dodatkowe zużycie energii, gdy radio komórkowe jest włączone. Jest to wpis z wieloma wartościami, po jednym na siłę sygnału (brak sygnału, słaby, umiarkowany, silny). 1,2 mA Niektóre radia zwiększają moc, gdy szukają stacji bazowej, a nie wykrywają sygnał. Wartości mogą być takie same lub maleć wraz ze wzrostem sygnału i jego siła. Jeśli podasz tylko jedną wartość, zostanie ona użyta we wszystkich mocne strony. Jeśli podasz 2 wartości, pierwsza będzie używana do braku sygnału, druga wartość jest używana przy wszystkich innych mocnych stronach itd.
bluetooth.controller.idle Średnie pobór prądu (mA) przez kontroler Bluetooth podczas bezczynności. - Te wartości nie są szacunkowe, ale pochodzą z arkusza danych na kontroler. Jeśli występuje wiele stanów odbioru lub transmisji, średnia wartość zajęte są wszystkie te stany. Ponadto system gromadzi teraz dane dotyczące Skanowanie Low Energy (LE) i Bluetooth.

Android W wersji 7.0 i nowszych nie są już używane wartości mocy Bluetootha w przypadku 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.controller.rx, Średnie pobór prądu (mA) przez kontroler Bluetooth podczas odbierania. -
bluetooth.controller.tx, Średnie pobór prądu (mA) przez kontroler Bluetooth podczas przesyłania. -
bluetooth.kontroler.napięcie Średnie napięcie operacyjne (mV) kontrolera Bluetooth. -
modem.kontroler.uśpienie Średnie pobór prądu (mA) przez kontroler modemu w trybie uśpienia. 0 mA Wartości te nie są szacowane, ale pochodzą z arkusza danych kontrolera. Jeśli istnieje wiele stanów odbierania, używana jest średnia z tych stanów. Jeśli jest obsługiwane wiele stanów przesyłania, przy czym można określić wartość dla każdego stanu przesyłania od Androida 9.
modem.kontroler.nieaktywny Średnie pobór prądu (mA) kontrolera modemu w czasie bezczynności. -
modem.controller.rx Średnie pobór prądu (mA) przez kontroler modemu podczas odbierania. -
modem.controller.tx Średnie pobór prądu (mA) przez kontroler modemu przy przesyłaniu z różną mocą radiową poziomów. Jest to wpis z wieloma wartościami, z jedną wartością na każdy poziom mocy transmisji. 100 mA, 200 mA, 300 mA, 400 mA, 500 mA
modem.kontroler.napięcie Średnie napięcie operacyjne (mV) kontrolera modemu. -
wifi.kontroler.nieaktywny Średnie pobór prądu (mA) kontrolera Wi-Fi podczas bezczynności. - Te wartości nie są szacunkowe, ale pochodzą z arkusza danych na kontroler. Jeśli występuje wiele stanów odbioru lub transmisji, średnia wartość zajęte są wszystkie te stany.
wifi.controller.rx Średnie pobór prądu (mA) przez kontroler Wi-Fi podczas odbierania. -
wifi.controller.tx Średnie pobór prądu (mA) przez kontroler Wi-Fi podczas transmisji. -
wifi.kontroler.napięcie Średnie napięcie operacyjne (mV) kontrolera Wi-Fi. -
cpu.speeds Jest to wpis wielowartościowy zawierający listę wszystkich możliwych prędkości procesora w kHz. 125 000 kHz, 250 000 kHz, 500 000 kHz, 1000 000 kHz, 1500 000 kHz Liczba i kolejność wpisów musi być zgodna z wpisami mA w cpu.active.
cpu.idle Łączna moc pobierana przez system, gdy znajdują się w nim procesory (i układ SOC) w stanie zawieszenia. 3 mA -
CPU.awake Dodatkowa moc używana, gdy procesory są w stanie bezczynności planowania (pętla bezczynnego jądra); system nie jest w stanie zawieszenia systemu. 50 mA Platforma może mieć więcej niż 1 stan bezczynności z różnym stanem poziomy zużycia energii; wybierz reprezentatywny stan bezczynności na dłuższy czas okresy bezczynności algorytmu szeregowania (kilka milisekund). Sprawdź wykres mocy na swojego sprzętu pomiarowego i wybrać próbki, w których procesor ma najniższy poziom zużywanie danych, odrzucając wyższe próbki, w przypadku których procesor był nieaktywny.
cpu.active Dodatkowa moc wykorzystywana przez procesory działające z różnymi prędkościami. 100 mA, 120 mA, 140 mA, 160 mA, 200 mA Wartość reprezentuje moc używaną przez szyny procesora przy pracy o różnych wartościach Szybkość działania. Ustaw maksymalną prędkość jądra na każdą z dozwolonych prędkości i punktów z takim procesorem. Liczba i kolejność wpisów odpowiadają liczby i kolejności wpisów w parametrze cpu.speeds.
cpu.clusters.cores Liczba rdzeni, które zawiera każdy klaster procesora. 4, 2 Wymagane tylko w przypadku urządzeń z procesorem heterogenicznym . Liczba wpisów i kolejność powinny być takie same jak liczba wpisy klastra dotyczące cpu.active i cpu.speeds. Pierwszy wpis przedstawia liczby rdzeni procesora w klastrze cluster0, drugi wpis przedstawia liczbę Liczba rdzeni procesora w klastrze 1 itd.
bateria.pojemność Łączna pojemność baterii w mAh 3000 mAh -

Skanowanie Low Energy (LE) i Bluetooth

W przypadku urządzeń z Androidem 7.0 system gromadzi dane dla funkcji Low Energy (LE) skanowanie i ruch sieciowy Bluetooth (np. RFCOMM i L2CAP) oraz powiązania te działania przy użyciu aplikacji, która ją zainicjowała. Powiązane są skanowania Bluetooth z aplikacją, która zainicjowała skanowanie, ale skanowanie wsadowe nie jest są powiązane z aplikacją Bluetooth). Dla aplikacji skanowanie przez N milisekund, koszt skanowania wynosi N ms czasu rx i N ms czasu tx; cały pozostały czas kontrolera jest przypisany do ruchu w sieci lub aplikacji Bluetooth.