Plattform-Energieverwaltung

Um die Akkulaufzeit des Geräts zu verbessern, kann Android den Gerätestatus beeinflussen, indem es die Gerätenutzung und den Wachzustand überwacht. Die Plattform kann in den Ruhezustand wechseln, um die Ausführung von Aktivitäten zu unterbrechen, während das Gerät nicht verwendet wird.

Dösen

Doze verlängert die Akkulaufzeit, indem es die CPU- und Netzwerkaktivität im Hintergrund der App verzögert, wenn ein Gerät längere Zeit nicht verwendet wird.

Inaktive Geräte in Doze treten regelmäßig in ein Wartungsfenster ein, in dem Apps ausstehende Arbeiten (Synchronisierungen, Jobs usw.) abschließen können. Anschließend schläft Doze für einen längeren Zeitraum wieder, gefolgt von einem weiteren Wartungsfenster. Die Plattform setzt die Schlaf-/Wartungssequenz „Doze“ fort und verlängert dabei jedes Mal die Leerlaufzeit, bis die maximale Ruhezeit von einigen Stunden erreicht ist. Ein Gerät in Doze erkennt jederzeit Bewegungen und verlässt Doze sofort, wenn eine Bewegung erkannt wird.

Android 7.0 und höher erweitert Doze, um jedes Mal, wenn ein Benutzer den Gerätebildschirm ausschaltet, eine geringere Anzahl von Optimierungen auszulösen, selbst wenn der Benutzer sich weiter bewegt, was eine längere Akkulaufzeit ermöglicht.

Kritische Systemdienste werden von Geräteherstellern in der Regel so eingerichtet, dass sie von Doze ausgenommen sind. Benutzer können über das Menü „Einstellungen“ auch bestimmte Apps von Doze ausschließen. Das Ausschließen von Apps kann jedoch dazu führen, dass der Akku des Geräts entladen wird. Standardmäßig ist Doze in AOSP deaktiviert . Einzelheiten zum Aktivieren von Doze finden Sie unter Integrieren von Doze .

Dösen-Anforderungen

Für die Unterstützung von Doze ist es erforderlich, dass das Gerät über einen Cloud-Messaging-Dienst wie Firebase Cloud Messaging (FCM) verfügt. Externe Triggerereignisse, wie etwa Cloud-Nachrichten, können Apps vorübergehend zur Ausführung ihrer Arbeit aufwecken, während das Gerät im Doze-Modus bleibt.

Die vollständige Doze-Unterstützung erfordert außerdem einen signifikanten Bewegungsmelder (SMD) auf dem Gerät; Für den leichtgewichtigen Doze-Modus in Android 7.0 und höher ist jedoch kein SMD erforderlich. Wenn Doze auf einem Gerät aktiviert ist, das:

  • Verfügt über ein SMD, werden vollständige Doze-Optimierungen durchgeführt (einschließlich Lightweight-Optimierungen).
  • Verfügt über kein SMD, es kommen nur die leichten Doze-Optimierungen vor.

Doze-Lebenszyklus

Doze beginnt, wenn die Plattform erkennt, dass das Gerät im Leerlauf ist, und endet, wenn eine oder mehrere Exit-Kriterien-Aktivitäten auftreten.

Erkennung

Die Plattform erkennt, dass ein Gerät inaktiv ist, wenn:

  • Gerät ist stationär (mit SMD).
  • Der Gerätebildschirm ist für einige Zeit ausgeschaltet.

Der Ruhemodus wird nicht aktiviert, wenn ein batteriebetriebenes Gerät an ein Ladegerät angeschlossen ist.

Während des Schlafens

Die Plattform versucht, das System im Ruhezustand zu halten, indem sie während eines Wartungsfensters regelmäßig den normalen Betrieb wieder aufnimmt und das Gerät dann für längere Zeiträume wieder in den Ruhezustand versetzt. Im Schlaf sind folgende Einschränkungen aktiv:

  • Apps ist der Netzwerkzugriff nicht gestattet.
  • App-Wakelocks werden ignoriert.
  • Alarme werden zurückgestellt. Ausgeschlossen sind Weckeralarme und Alarme, die mit setAndAllowWhileIdle() eingestellt wurden (begrenzt auf 1 pro 15 Minuten pro App in Doze). Diese Ausnahme ist für Apps (z. B. Kalender) gedacht, die Ereigniserinnerungsbenachrichtigungen anzeigen müssen.
  • Es werden keine WLAN-Scans durchgeführt.
  • SyncAdapter Synchronisierungen und JobScheduler Jobs werden bis zum nächsten Wartungsfenster verschoben.
  • Apps, die SMS- und MMS-Nachrichten empfangen, werden auf eine temporäre Whitelist gesetzt, damit sie ihre Verarbeitung abschließen können.

Ausfahrt

Die Plattform verlässt das Gerät von Doze, wenn sie Folgendes erkennt:

  • Benutzerinteraktion mit dem Gerät
  • Gerätebewegung
  • Der Gerätebildschirm schaltet sich ein
  • Bevorstehender Wecker. Wecker

Benachrichtigungen führen nicht dazu, dass das Gerät Doze verlässt.

Android 7.0 und höher erweitert Doze um die Aktivierung eines leichten Schlafmodus bei ausgeschaltetem Bildschirm, bevor das Gerät inaktiv ist.

Abbildung 1. Doze-Modi für instationäre und stationäre Geräte
Aktion Dösen Leichtes Dösen
Auslösen Bildschirm aus, auf Batterie, stationär Bildschirm aus, im Akkubetrieb (ausgesteckt)
Zeitliche Koordinierung Sukzessive zunehmende Zeiträume mit Wartung Wiederholte N-Minuten-Zeiträume mit Wartungsfenstern
Einschränkungen Kein Netzwerkzugriff, Wecksperre oder GPS-/WLAN-Scan; Alarme und Jobs/Synchronisierungen zurückgestellt Kein Netzwerkzugriff; Jobs/Synchronisierungen werden außer während Wartungsfenstern verschoben
Verhalten Es wurden nur Push-Benachrichtigungen mit hoher Priorität empfangen Alle empfangenen Echtzeitnachrichten (Sofortnachrichten, Anrufe usw.); Push-Benachrichtigungsnachricht mit hoher Priorität ermöglicht den temporären Netzwerkzugriff
Ausfahrt Bewegung, Bildschirm an oder Weckeralarm Bildschirm An

Interaktion mit App Standby

  • Die in Doze verbrachte Zeit wird nicht auf den App-Standby angerechnet.
  • Während sich das Gerät im Doze-Modus befindet, dürfen inaktive Apps mindestens einmal am Tag normale Vorgänge ausführen.

Doze integrieren

Wenn Doze aktiviert ist, führen Geräte, die SENSOR_TYPE_SIGNIFICANT_MOTION unterstützen, vollständige Doze-Optimierungen durch (einschließlich Lightweight-Optimierungen); Geräte ohne SMD führen nur leichte Doze-Optimierungen durch. Android wählt automatisch die geeigneten Doze-Optimierungen aus und eine Herstellerkonfiguration ist nicht erforderlich.

So aktivieren Sie Doze für ein Gerät:

  1. Stellen Sie sicher, dass auf dem Gerät ein Cloud-Messaging-Dienst installiert ist.
  2. Setzen Sie in der Geräte-Overlay-Konfigurationsdatei overlay/frameworks/base/core/res/res/values/config.xml config_enableAutoPowerModes auf true :
    <bool name="config_enableAutoPowerModes">true</bool>
    
    . In AOSP ist dieser Parameter standardmäßig auf false (Doze deaktiviert) gesetzt.
  3. Bestätigen Sie, dass vorinstallierte Apps und Dienste:
  4. Bestätigen Sie, dass die erforderlichen Dienste von Doze ausgenommen sind.

Tipps

Apps testen und optimieren

Testen Sie alle Apps (insbesondere vorinstallierte Apps) im Doze-Modus. Einzelheiten finden Sie unter Testen mit Doze und App Standby .