Informacje o wykorzystaniu baterii pochodzą ze statystyk wykorzystania baterii i wartości profilu zasilania.
Statystyki wykorzystania baterii
Platforma automatycznie określa statystyki zużycia baterii, śledząc, jak długo poszczególne komponenty urządzenia znajdują się w różnych stanach. Gdy komponenty (chipset Wi-Fi, radio komórkowe, Bluetooth, GPS, wyświetlacz, procesor) zmieniają stan (WYŁ./WŁ., bezczynność/pełna moc, niska/wysoka jasność itp.), usługa sterująca zgłasza to do usługi BatteryStats. BatteryStats zbiera informacje z upływem czasu i przechowuje je do wykorzystania po ponownym uruchomieniu urządzenia. Usługa nie śledzi bezpośrednio poboru prądu z baterii, ale zbiera informacje o czasie, które można wykorzystać do przybliżonego określenia zużycia baterii przez różne komponenty.
Platforma zbiera statystyki za pomocą tych metod:
- Push Usługi, które wykrywają zmiany komponentów, przesyłają zmiany stanu do usługi BatteryStats.
- Pull W przypadku komponentów takich jak wykorzystanie procesora przez aplikacje platforma automatycznie pobiera dane w punktach przejścia (np. podczas rozpoczynania lub zatrzymywania aktywności), aby wykonać migawkę.
Zużycie zasobów jest powiązane z aplikacją, która ich używa. Gdy wiele aplikacji jednocześnie korzysta z zasobu (np. z blokad wybudzania, które uniemożliwiają zawieszenie systemu), platforma rozdziela zużycie między te aplikacje, choć niekoniecznie równomiernie.
Aby uniknąć utraty statystyk użytkowania w przypadku zdarzenia wyłączenia, które może wskazywać problemy z zużyciem baterii (np. wyłączenie następuje, ponieważ bateria osiągnęła zerową pojemność), platforma wysyła statystyki co około 30 minut.
Statystyki wykorzystania baterii są obsługiwane w całości przez platformę i nie wymagają modyfikacji ze strony producenta OEM.
Wartości profilu zasilania
Ostrzeżenie: producenci urządzeń muszą podać profil zasilania komponentu, który określa wartość zużycia prądu przez komponent i przybliżone zużycie baterii spowodowane przez komponent w czasie. Ten profil jest zdefiniowany w pliku platform/frameworks/base/core/res/res/xml/power_profile.xml. Więcej informacji o tych ustawieniach znajdziesz w artykule Wartości mocy.
W profilu zasilania pobór mocy jest określany w miliamperach (mA) przy napięciu nominalnym i może być wartością ułamkową podaną w mikroamperach (uA). Wartość powinna być wartością mA zużywaną przez baterię, a nie wartością mającą zastosowanie do szyny zasilającej, która nie odpowiada prądowi zużywanemu z baterii.
Na przykład profil zasilania wyświetlacza określa natężenie prądu (w mA) potrzebne do utrzymania wyświetlacza włączonego przy minimalnej i maksymalnej jasności. Aby określić koszt energii (czyli poziom baterii zużyty przez komponent wyświetlacza) związany z utrzymywaniem włączonego wyświetlacza, platforma śledzi czas spędzony na każdym poziomie jasności, a następnie mnoży te przedziały czasowe przez interpolowany koszt jasności wyświetlacza.
Framework mnoży też czas procesora dla każdej aplikacji przez miliampery wymagane do uruchomienia procesora z określoną szybkością. Obliczenie to pozwala ustalić porównawczą pozycję aplikacji pod względem zużycia baterii podczas wykonywania kodu procesora (czas, w którym aplikacja jest na pierwszym planie, i łączny czas obejmujący aktywność w tle są podawane osobno).