Profile zasilania na Androidzie

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ą stany (WYŁ./WŁ., bezczynność/pełna moc, niska/wysoka jasność itp.), usługa sterująca zgłasza to do usługi BatteryStats. BatteryStats gromadzi 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 (Pobierz). 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 zrobić migawkę.

Zużycie zasobów jest powiązane z aplikacją, która ich używa. Gdy wiele aplikacji jednocześnie korzysta z zasobu (np. blokad wybudzania, które uniemożliwiają zawieszenie systemu), platforma rozkłada zużycie na te aplikacje, choć niekoniecznie równomiernie.

Aby uniknąć utraty statystyk użytkowania w przypadku wyłączenia urządzenia, co może wskazywać na problemy z zużyciem baterii (np. wyłączenie następuje, gdy bateria osiągnie zerową pojemność), framework zapisuje statystyki co około 30 minut.

Statystyki zużycia 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ą udostępniać 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 nominalnym napięciu 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 wymagane 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 każdej aplikacji przez mA 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 działa na pierwszym planie, i łączny czas obejmujący aktywność w tle są podawane osobno).