Jak Android mierzy energię zużywaną przez poszczególne komponenty sprzętowe? Jak Android mierzy energię zużywaną przez poszczególne procesy?
Jak Android mierzy energię zużywaną przez poszczególne komponenty sprzętowe? Jak Android mierzy energię zużywaną przez poszczególne procesy?
Odpowiedzi:
Android śledzi zdarzenia wpływające na zużycie baterii i przechowuje te informacje w pliku batterystats.bin. Kilka przykładów:
Android oblicza, ile mocy zużywa każda aplikacja lub komponent (np. Ekran) na podstawie informacji konfiguracyjnych zawartych w urządzeniu przez producenta.
Nie wszystko jest mierzone, więc statystyki mogą czasem wprowadzać w błąd, ale z każdą wersją platformy Android jest coraz lepiej.
Statystyki baterii można zrzucić z urządzenia za pomocą:
adb shell dumpsys batterystats
Oto interesujący fragment postu Diane Hackborn z dodatkowymi informacjami na temat zużycia energii przez blokady budzenia:
Istnieją dwa sposoby obliczania mocy z blokad budzenia.
W niektórych chipsetach wystarczy przytrzymanie blokady wybudzania, aby procesor nie przeszedł w pełny głęboki sen. W zgłoszonym zużyciu baterii to dodatkowe zużycie energii zostanie rozdzielone na wszystkie aplikacje z blokadą aktywacji.
Nawet jeśli sama blokada aktywacji nie powoduje zużycia energii, przytrzymanie blokady aktywacji w jednej aplikacji może pozwolić na uruchomienie innych aplikacji i procesora, gdy inaczej by tego nie zrobiły. (Na przykład, niektóre aplikacje mogą mieć pętlę {uśpienie (1); zrób coś;}, która nie uruchomiłaby się, gdyby blokady nie były wstrzymane.) Aby rozwiązać ten problem, połowa wykorzystania procesora przez aplikacje jest dystrybuowana, aby można było za to winić te posiadające śluzę.