Profile zasilania dla Androida

Informacje o zużyciu baterii pochodzą ze statystyk użytkowania baterii i wartości profilu mocy.

Statystyki użytkowania baterii

Struktura automatycznie określa statystyki zużycia baterii, śledząc, jak długo komponenty urządzenia spędzają w różnych stanach. Gdy komponenty (chipset Wi-Fi, radio komórkowe, Bluetooth, GPS, wyświetlacz, procesor) zmieniają stany (wyłączone / włączone, bezczynność / pełna moc, niska / wysoka jasność itp.), Usługa kontrolna zgłasza się do ramowej usługi BatteryStats. BatteryStats zbiera informacje w czasie i przechowuje je w celu użycia podczas ponownego uruchamiania. Usługa nie śledzi poboru prądu akumulatora bezpośrednio, ale zamiast tego gromadzi informacje o czasie, które można wykorzystać do przybliżonego zużycia akumulatora przez różne komponenty.

Framework gromadzi statystyki przy użyciu następujących metod:

  • Popchnij . Usługi świadome zmian składników wysyłają zmiany stanu do usługi BatteryStats.
  • Pociągnij . W przypadku składników, takich jak użycie procesora przez aplikacje, platforma automatycznie pobiera dane w punktach przejścia (takich jak uruchamianie lub zatrzymywanie działania) w celu wykonania migawki.

Zużycie zasobów jest powiązane z aplikacją korzystającą z zasobu. Gdy wiele aplikacji jednocześnie korzysta z zasobu (takiego jak wakeloki, które uniemożliwiają zawieszenie systemu), framework rozkłada zużycie na te aplikacje, chociaż niekoniecznie równo.

Aby uniknąć utraty statystyk użytkowania w przypadku zdarzenia wyłączenia, które może wskazywać na problemy z zużyciem energii baterii (tj. Wyłączenie następuje, ponieważ bateria osiągnęła zerową pozostałą pojemność), struktura wyświetla statystyki co około 30 minut.

Statystyki użytkowania baterii są obsługiwane wyłącznie przez platformę i nie wymagają modyfikacji OEM.

Wartości profilu mocy

Przestroga: Producenci urządzeń muszą zapewnić profil mocy komponentu, który określa wartość poboru prądu przez komponent i przybliżone zużycie baterii powodowane przez komponent w czasie. Ten profil jest zdefiniowany w platformie / frameworks / base / core / res / res / xml / power_profile.xml . Aby uzyskać wskazówki dotyczące tych ustawień, zobacz Wartości mocy .

W ramach profilu mocy pobór mocy jest podawany w miliamperach (mA) poboru prądu przy napięciu znamionowym i może być wartością ułamkową określoną w mikroamperach (uA). Wartość powinna być wartością mA pobieraną z akumulatora, a nie wartością mającą zastosowanie do szyny zasilającej, która nie odpowiada prądowi pobieranemu z akumulatora.

Na przykład profil mocy wyświetlacza określa prąd w mA wymagany do utrzymania włączonego wyświetlacza przy minimalnej i maksymalnej jasności. Aby określić koszt energii (tj. Baterii rozładowanej przez element wyświetlacza) utrzymania wyświetlacza w stanie włączonym, struktura śledzi czas spędzony na każdym poziomie jasności, a następnie mnoży te przedziały czasu przez interpolowany koszt jasności wyświetlacza.

Struktura mnoży również czas procesora dla każdej aplikacji przez mA wymagane do uruchomienia procesora z określoną prędkością. To obliczenie ustala ranking porównawczy tego, ile baterii zużywa aplikacja podczas wykonywania kodu procesora (czas jako aplikacja na pierwszym planie i całkowity czas, w tym aktywność w tle, są raportowane osobno).