Zarządzanie zasilaniem platformy z funkcjami Uśpienie

Aby wydłużyć czas pracy urządzenia na baterii, Android może wpływać na stan urządzenia przez: monitorowanie aktywności i korzystania z urządzenia. Platforma może wprowadzić stan usypiać, aby wstrzymać biegi, gdy urządzenie nie jest używane.

Uśpienie – informacje

Uśpienie wydłuża czas pracy na baterii, wstrzymując działanie procesora w tle, aktywności w sieci, gdy urządzenie nie jest używane przez dłuższy czas.

Urządzenia nieaktywne w trybie Uśpienie okresowo rozpoczynają okres konserwacji, w którym aplikacje mogą wykonywać oczekujące zadania (synchronizacje, zadania itp.). Uśpienie i wznowienie sen na dłuższy czas, a potem kolejny okres konserwacji. platforma kontynuuje sekwencję uśpienia/konserwacji, zwiększając długość nieaktywny za każdym razem, aż do osiągnięcia maksymalnego czasu snu po kilku godzinach. Wcale urządzenie w trybie Uśpienie pozostaje świadome ruchu i natychmiast wychodzi z funkcji Uśpienie. po wykryciu ruchu.

Android 7.0 i nowsze rozszerzenia rozszerzają tryb Uśpienia, aby uruchomić mniejszy zestaw optymalizacji za każdym razem, gdy użytkownik wyłączy ekran urządzenia, nawet jeśli użytkownik nadal będzie to robić możesz się swobodnie poruszać, co wydłuża czas pracy na baterii.

Kluczowe usługi systemowe są zwykle konfigurowane przez producentów urządzeń w taki sposób, są zwolnione z funkcji Uśpienie. Użytkownicy mogą też wyłączyć wybrane aplikacje z funkcji Uśpienie, Menu Ustawienia. Jednak wykluczenie aplikacji może spowodować wyczerpanie się baterii. Domyślnie uśpienie jest wyłączone w AOSP. w przypadku Szczegółowe informacje na temat włączania Uśpienia znajdziesz w sekcji Integrowanie uśpienia.

Wymagania dotyczące uśpienia

Obsługa uśpienia wymaga, aby urządzenie obsługiwało usługę przesyłania wiadomości w chmurze, taką jak Firebase Komunikacja w chmurze (FCM). zdarzenia aktywatora zewnętrznego, takie jak wiadomości w chmurze, może tymczasowo wybudzić aplikacje w celu wykonania pracy, dopóki urządzenie jest w trybie uśpienia.

Pełna obsługa funkcji uśpienia wymaga również istotne czujnik ruchu (SMD) na urządzeniu; ale lekki tryb uśpienia Android 7.0 i nowszy nie wymaga procesora SMD. Jeśli uśpienie jest włączone na urządzeniu które:

  • Ma SMD, następuje pełna optymalizacja w trybie uśpienia (obejmuje ).
  • Nie ma procesora SMD. Wykonywane są tylko uproszczone optymalizacje w trybie uśpienia.

Cykl uśpienia

Uśpienie rozpoczyna się, gdy platforma wykryje, że urządzenie jest nieaktywne, kończy się, gdy wystąpi co najmniej 1 działanie związane z kryterium wyjścia.

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

  • Urządzenie jest nieruchome (z procesora SMD).
  • Ekran urządzenia jest wyłączony na pewien czas.

Tryb uśpienia nie włącza się, gdy urządzenie z baterią jest podłączone do ładowarki.

W trakcie uśpienia

Platforma okresowo próbuje utrzymać system w stanie uśpienia wznowienie normalnego działania w okresie konserwacji, a następnie zwrot urządzenia spać na dłużej. Podczas snu: aktywne ograniczenia:

  • Aplikacje nie mają dostępu do sieci.
  • Blokady uśpienia aplikacji zostały zignorowane.
  • Alarmy są odłożone. Nie obejmuje alarmów ustawionych za pomocą budzika setAndAllowWhileIdle() (ograniczone do 1 na 15 minut na aplikację w trybie Uśpienie). To wykluczenie jest przeznaczone dla aplikacji (takich jak Kalendarz), które muszą wyświetlać powiadomienia o przypomnieniach o wydarzeniach.
  • Skanowanie Wi-Fi nie jest wykonywane.
  • Synchronizacje SyncAdapter i zadania odroczone: JobScheduler aż do kolejnego okresu konserwacji.
  • Aplikacje odbierające SMS-y i MMS-y są umieszczane na tymczasowej białej liście, mogą dokończyć proces przetwarzania.

Zakończ

Platforma wyłącza urządzenie z uśpienia, gdy wykryje:

  • Interakcja użytkownika z urządzeniem
  • Ruch urządzenia
  • Ekran urządzenia włącza się
  • Zbliżający się budzik

Powiadomienia nie powodują wycofania urządzenia z trybu uśpienia.

Android 7.0 i nowsze rozszerzają funkcje Uśpienia przez włączenie lekkiego trybu uśpienia po wyłączeniu ekranu, zanim urządzenie stanie się nieaktywne.

Rysunek 1. Tryby uśpienia na urządzeniach niestacjonarnych i stacjonarnych.

Działanie Uśpienie Lekkie drzemanie
Wyzwalacz Wyłączony ekran, na baterii, brak aktywności Ekran wyłączony, na baterii (odłączony)
Czas Stopniowe zwiększanie liczby okresów z konserwacją Powtarzające się N-minutowe okresy z okresami konserwacji
Ograniczenia Brak dostępu do sieci, blokady wybudzania lub skanowania GPS/Wi-Fi. alarmy i zadania/synchronizacje odroczone Brak dostępu do sieci; zadania/synchronizacje odroczone z wyjątkiem okresów konserwacji
Działanie Otrzymujesz tylko powiadomienia push o wysokim priorytecie wszystkie wiadomości w czasie rzeczywistym (wiadomości czatu, połączenia itp.); powiadomienie push o wysokim priorytecie umożliwia tymczasowy dostęp do sieci
Zakończ Ruch, włączony ekran lub budzik Ekran włączony

Interakcja z aplikacją w trybie gotowości

  • Czas w trybie Uśpienie nie jest wliczany do czasu czuwania aplikacji.
  • Gdy urządzenie jest w trybie uśpienia, nieaktywne aplikacje mogą działać normalnie co najmniej raz dziennie.

Integracja z uśpieniem

Po włączeniu Uśpienia urządzenia obsługujące SENSOR_TYPE_SIGNIFICANT_MOTION przeprowadzić pełne optymalizacje uśpienia (w tym drobne optymalizacje); na urządzeniach bez procesora SMD przeprowadzają tylko lekkie optymalizacje uśpienia. Android, automatycznie wybiera odpowiednie optymalizacje Doze i dostawcę .

Aby włączyć Uśpienie na urządzeniu:

  1. Sprawdź, czy na urządzeniu jest zainstalowana usługa komunikacji w chmurze.
  2. W pliku konfiguracji nakładki urządzenia overlay/frameworks/base/core/res/res/values/config.xml, ustaw config_enableAutoPowerModes do true:
    <bool name="config_enableAutoPowerModes">true</bool>
    
    W AOSP ten parametr ma domyślnie wartość false (funkcja uśpienia wyłączona).
  3. Sprawdź, czy wstępnie załadowane aplikacje i usługi:
  4. Potwierdź, że niezbędne usługi są zwolnione z funkcji Uśpienie.

Wskazówki

Testowanie i optymalizowanie aplikacji

Testuj wszystkie aplikacje (zwłaszcza te wstępnie załadowane) w trybie uśpienia. Więcej informacji: Testowanie z funkcjami Uśpienie i Czuwanie aplikacji.