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.