Zarządzanie energią platformy

Zadbaj o dobrą organizację dzięki kolekcji Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.

Aby wydłużyć żywotność baterii urządzenia, Android może wpływać na stan urządzenia, monitorując jego użycie i czuwanie. Platforma może wejść w stan uśpienia, aby wstrzymać działania z biegu, gdy urządzenie nie jest używane.

Drzemać

Doze wydłuża czas pracy na baterii, opóźniając działanie procesora aplikacji w tle i aktywność sieciową, gdy urządzenie nie jest używane przez dłuższy czas.

Bezczynne urządzenia w trybie Doze okresowo przechodzą do okna konserwacji, podczas którego aplikacje mogą wykonywać oczekujące prace (synchronizacje, zadania itp.). Następnie drzemka wznawia sen na dłuższy czas, po czym następuje kolejne okno konserwacji. Platforma kontynuuje sekwencję uśpienia/konserwacji drzemki, za każdym razem zwiększając długość bezczynności, aż do osiągnięcia maksymalnie kilku godzin snu. Przez cały czas urządzenie w trybie drzemki jest świadome ruchu i natychmiast opuszcza drzemkę w przypadku wykrycia ruchu.

Android 7.0 i nowszy rozszerza funkcję Doze, aby uruchamiać lżejszy zestaw optymalizacji za każdym razem, gdy użytkownik wyłącza ekran urządzenia, nawet gdy użytkownik nadal się porusza, co zapewnia dłuższą żywotność baterii.

Krytyczne usługi systemowe są zazwyczaj konfigurowane przez producentów urządzeń w celu wyłączenia ich z funkcji Doze. Użytkownicy mogą również wykluczyć określone aplikacje z funkcji Doze za pomocą menu Ustawienia. Jednak wyłączenie aplikacji może spowodować rozładowanie baterii urządzenia. Domyślnie Doze jest wyłączone w AOSP; szczegółowe informacje na temat włączania funkcji Doze można znaleźć w sekcji Integracja funkcji Doze .

Wymagania dotyczące drzemki

Obsługa funkcji Doze wymaga, aby urządzenie miało usługę przesyłania wiadomości w chmurze, taką jak Firebase Cloud Messaging (FCM) . Zdarzenia wyzwalaczy zewnętrznych, takie jak wiadomości w chmurze, mogą tymczasowo wybudzać aplikacje do pracy, gdy urządzenie pozostaje w trybie drzemki.

Obsługa pełnej drzemki wymaga również znacznego czujnika ruchu (SMD) na urządzeniu; jednak lekki tryb drzemki w Androidzie 7.0 i nowszych nie wymaga SMD. Jeśli funkcja Doze jest włączona na urządzeniu, które:

  • Ma SMD, występują pełne optymalizacje Doze (w tym lekkie optymalizacje).
  • Nie ma SMD, występują tylko lekkie optymalizacje Doze.

Cykl życia drzemki

Doze rozpoczyna się, gdy platforma wykryje, że urządzenie jest bezczynne i kończy się, gdy wystąpi jedno lub więcej działań kryteriów wyjścia.

Wykrycie

Platforma wykrywa, że ​​urządzenie jest bezczynne, gdy:

  • Urządzenie jest nieruchome (za pomocą SMD).
  • Ekran urządzenia jest wyłączony przez pewien czas.

Tryb drzemki nie włącza się, gdy urządzenie zasilane bateryjnie jest podłączone do ładowarki.

Podczas drzemki

Platforma próbuje utrzymać system w stanie uśpienia, okresowo wznawiając normalne działanie podczas okna konserwacji, a następnie przywracając urządzenie do stanu uśpienia na dłuższe, powtarzające się okresy. Podczas snu aktywne są następujące ograniczenia:

  • Aplikacje nie mają dostępu do sieci.
  • Wakelocki aplikacji zostały zignorowane.
  • Alarmy są odroczone. Wyklucza alarmy budzika i alarmy ustawione za pomocą setAndAllowWhileIdle() (ograniczone do 1 na 15 minut na aplikację w trybie drzemki). To zwolnienie dotyczy aplikacji (takich jak Kalendarz), które muszą wyświetlać powiadomienia o przypomnieniach o wydarzeniach.
  • Skanowanie Wi-Fi nie jest wykonywane.
  • SyncAdapter synchronizuje i zadania JobScheduler odroczone do następnego okna obsługi.
  • Aplikacje odbierające SMS-y i MMS-y są umieszczane na tymczasowej białej liście, aby mogły dokończyć przetwarzanie.

Wyjście

Platforma opuszcza urządzenie z funkcji Doze, gdy wykryje:

  • Interakcja użytkownika z urządzeniem
  • Ruch urządzenia
  • Włącza się ekran urządzenia
  • Nadciągający alarm Budzik

Powiadomienia nie powodują wyjścia urządzenia z trybu drzemki.

Android 7.0 i nowszy rozszerza funkcję Doze, włączając lekki tryb uśpienia, gdy ekran jest wyłączony, zanim urządzenie stanie się bezczynne.

Rysunek 1. Tryby drzemki dla urządzeń niestacjonarnych i stacjonarnych
Akcja Drzemać Lekka drzemka
Cyngiel Ekran wyłączony, na baterii, stacjonarny Ekran wyłączony, na baterii (odłączony)
wyczucie czasu Sukcesywnie zwiększające się okresy z utrzymaniem Powtarzane okresy N-minutowe z oknami konserwacyjnymi
Ograniczenia Brak dostępu do sieci, blokady budzenia lub skanowania GPS/Wi-Fi; alarmy i zadania/synchronizacje odroczone Brak dostępu do sieci; zadania/synchronizacje są odroczone z wyjątkiem okresów konserwacyjnych
Zachowanie Odebrano tylko powiadomienia push o wysokim priorytecie Odebrane wszystkie wiadomości w czasie rzeczywistym (wiadomości błyskawiczne, połączenia itp.); wiadomość push o wysokim priorytecie umożliwia tymczasowy dostęp do sieci
Wyjście Alarm ruchu, włączony ekran lub budzik Na ekranie

Interakcja z trybem gotowości aplikacji

  • Czas spędzony w trybie drzemki nie wlicza się do trybu czuwania aplikacji.
  • Gdy urządzenie jest w trybie drzemki, bezczynne aplikacje mogą wykonywać normalne operacje przynajmniej raz dziennie.

Integracja Doze

Gdy funkcja drzemki jest włączona, urządzenia obsługujące SENSOR_TYPE_SIGNIFICANT_MOTION wykonują pełne optymalizacje funkcji drzemki (w tym lekkie optymalizacje); urządzenia bez SMD wykonują tylko lekkie optymalizacje Doze. Android automatycznie wybiera odpowiednie optymalizacje funkcji Doze, a konfiguracja dostawcy nie jest konieczna.

Aby włączyć funkcję Doze dla urządzenia:

  1. Upewnij się, że urządzenie ma zainstalowaną usługę przesyłania wiadomości w chmurze.
  2. W pliku konfiguracyjnym nakładki urządzenia overlay overlay/frameworks/base/core/res/res/values/config.xml , ustaw config_enableAutoPowerModes na true :
    <bool name="config_enableAutoPowerModes">true</bool>
    
    W AOSP ten parametr jest domyślnie ustawiony na false (Drzemka wyłączona).
  3. Potwierdź, że wstępnie załadowane aplikacje i usługi:
  4. Potwierdź, że niezbędne usługi są zwolnione z funkcji Doze.

Porady

Testowanie i optymalizacja aplikacji

Przetestuj wszystkie aplikacje (zwłaszcza aplikacje wstępnie załadowane) w trybie drzemki. Aby uzyskać szczegółowe informacje, zapoznaj się z rozdziałem Testowanie z funkcją drzemki i czuwania aplikacji .