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 undJobScheduler
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.
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:
- Stellen Sie sicher, dass auf dem Gerät ein Cloud-Messaging-Dienst installiert ist.
- Setzen Sie in der Geräte-Overlay-Konfigurationsdatei
overlay/frameworks/base/core/res/res/values/config.xml
config_enableAutoPowerModes
auftrue
:<bool name="config_enableAutoPowerModes">true</bool>
. In AOSP ist dieser Parameter standardmäßig auffalse
(Doze deaktiviert) gesetzt. - Bestätigen Sie, dass vorinstallierte Apps und Dienste:
- Nutzen Sie die energiesparenden Optimierungsrichtlinien . Einzelheiten finden Sie unter Apps testen und optimieren .
ODER
- Sind von Doze und App Standby ausgenommen. Einzelheiten finden Sie unter Befreiung von Anträgen .
- Nutzen Sie die energiesparenden Optimierungsrichtlinien . Einzelheiten finden Sie unter Apps testen und optimieren .
- Bestätigen Sie, dass die erforderlichen Dienste von Doze ausgenommen sind.
Tipps
- Verwenden Sie nach Möglichkeit FCM für die nachgelagerte Nachrichtenübermittlung .
- Wenn Ihre Benutzer eine Benachrichtigung sofort sehen müssen, verwenden Sie eine FCM-Nachricht mit hoher Priorität .
- Stellen Sie in der Nutzlast der ersten Nachricht ausreichend Informationen bereit (um unnötige nachfolgende Netzwerkzugriffe zu vermeiden).
- Legen Sie kritische Alarme mit
setAndAllowWhileIdle()
undsetExactAndAllowWhileIdle()
fest.
Apps testen und optimieren
Testen Sie alle Apps (insbesondere vorinstallierte Apps) im Doze-Modus. Einzelheiten finden Sie unter Testen mit Doze und App Standby .