Profile zasilania na Androidzie

Informacje o wykorzystaniu baterii pochodzą ze statystyk wykorzystania baterii i wartości profilu zasilania.

Statystyki dotyczące wykorzystania baterii

Platforma automatycznie określa statystyki dotyczące zużycia baterii, śledząc, jak długo 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ŁĄCZONY/WŁĄCZONY, bezczynny/pełna moc, niska/wysoka jasność itp.), usługa sterująca przesyła raporty do usługi BatteryStats w ramach frameworku. BatteryStats gromadzi informacje na przestrzeni czasu i przechowuje je do użycia po ponownym uruchomieniu. Usługa nie śledzi bezpośrednio poboru prądu przez baterię, ale zbiera informacje o czasie, które można wykorzystać do oszacowania zużycia baterii przez różne komponenty.

Platforma zbiera statystyki za pomocą tych metod:

  • Push. Usługi, które są świadome zmian w komponentach, przesyłają zmiany stanu do usługi BatteryStats.
  • Pull. W przypadku komponentów takich jak wykorzystanie procesora przez aplikacje framework automatycznie pobiera dane w punktach przejścia (np. podczas uruchamiania lub zatrzymywania aktywności), aby wykonać zrzut ekranu.

Korzystanie z zasobów jest powiązane z aplikacją, która korzysta z zasobu. Gdy wiele aplikacji jednocześnie korzysta z zasobu (np. blokady aktywacji, która zapobiega zawieszeniu systemu), framework rozkłada zużycie na te aplikacje, ale niekoniecznie równomiernie.

Aby uniknąć utraty statystyk dotyczących zdarzenia zamykania, które może wskazywać na problemy z zużyciem energii baterii (np. zamykanie następuje, ponieważ bateria osiągnęła zerową pojemność), platforma wyświetla statystyki co około 30 minut.

Statystyki dotyczące wykorzystania baterii są w pełni obsługiwane przez platformę i nie wymagają modyfikacji przez OEM.

Wartości profilu mocy

Uwaga: producenci urządzeń muszą podać profil zasilania komponentu, który określa bieżące zużycie energii przez komponent oraz przybliżone zużycie baterii 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 odpowiadać prądowi w mA pobieranemu przez baterię, a nie wartości zastosowanej do szyny zasilającej, która nie odpowiada prądowi pobieranemu z baterii.

Na przykład profil mocy wyświetlacza określa prąd w mA wymagany do utrzymania wyświetlacza w stanie włączonym przy minimalnej i maksymalnej jasności. Aby określić koszt energii (czyli zużycie baterii przez komponent wyświetlacza) związany z utrzymywaniem wyświetlacza w stanie włączonym, framework śledzi czas spędzony na każdym poziomie jasności, a następnie mnoży te przedziały czasowe przez interpolowane zużycie energii na potrzeby wyświetlacza.

Framework mnoży też czas procesora dla każdej aplikacji przez mA wymagane do uruchomienia procesora o określonej szybkości. To obliczenie określa ranking porównawczy zużycia baterii przez aplikację podczas wykonywania kodu procesora (czas jako aplikacja na pierwszym planie i łączny czas, w tym aktywność w tle, są raportowane osobno).