Um die Akkulaufzeit des Geräts zu verbessern, kann Android den Gerätestatus beeinflussen, indem es die Nutzung und den Wachzustand des Geräts überwacht. Die Plattform kann in einen 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 CPU- und Netzwerkaktivitäten 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 anstehende Arbeiten (Synchronisierungen, Jobs usw.) abschließen können. Doze nimmt dann den Ruhezustand für einen längeren Zeitraum wieder auf, gefolgt von einem weiteren Wartungsfenster. Die Plattform setzt die Doze-Ruhezustands-/Wartungssequenz fort, wobei sie die Dauer des Leerlaufs jedes Mal verlängert, bis ein Maximum von einigen Stunden Ruhezeit 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, einen leichteren Satz von Optimierungen auszulösen, selbst wenn sich der Benutzer weiter bewegt, was eine längere Akkulaufzeit ermöglicht.
Kritische Systemdienste werden in der Regel von Geräteherstellern so eingerichtet, dass sie von Doze ausgenommen sind. Benutzer können auch bestimmte Apps über das Einstellungsmenü von Doze ausnehmen. 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 .
Doze-Anforderungen
Die Doze-Unterstützung erfordert, dass das Gerät über einen Cloud-Messaging-Dienst wie Firebase Cloud Messaging (FCM) verfügt. Externe Triggerereignisse, wie z. B. Cloud-Nachrichten, können Apps vorübergehend aufwecken, damit sie ihre Arbeit erledigen, während das Gerät im Doze-Modus verbleibt.
Die vollständige Doze-Unterstützung erfordert auch einen signifikanten Bewegungsmelder (SMD) auf dem Gerät; Der leichtgewichtige Doze-Modus in Android 7.0 und höher erfordert jedoch kein SMD. Wenn Doze auf einem Gerät aktiviert ist, das:
- Hat ein SMD, treten vollständige Doze-Optimierungen auf (einschließlich Lightweight-Optimierungen).
- Hat kein SMD, nur die leichten Doze-Optimierungen treten auf.
Doze-Lebenszyklus
Doze beginnt, wenn die Plattform erkennt, dass sich das Gerät im Leerlauf befindet, und endet, wenn eine oder mehrere Aktivitäten mit Beendigungskriterien 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 Doze-Modus wird nicht aktiviert, während ein batteriebetriebenes Gerät an ein Ladegerät angeschlossen ist.
Während Dösen
Die Plattform versucht, das System in einem Ruhezustand zu halten, nimmt den normalen Betrieb während eines Wartungsfensters regelmäßig wieder auf und versetzt das Gerät dann für längere sich wiederholende Zeiträume in den Ruhezustand. Während des Schlafens sind die folgenden Einschränkungen aktiv:
- Apps haben keinen Zugriff auf das Netzwerk.
- App-Wakelocks werden ignoriert.
- Alarme werden verzögert. Schließt Weckeralarme und Alarme aus, die mit
setAndAllowWhileIdle()
eingestellt wurden (begrenzt auf 1 pro 15 Minuten pro App in Doze). Diese Ausnahme ist für Apps (z. B. Kalender) vorgesehen, die Ereigniserinnerungsbenachrichtigungen anzeigen müssen. - WLAN-Scans werden nicht durchgeführt.
-
SyncAdapter
synchronisiert 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.
Ausgang
Die Plattform verlässt das Gerät von Doze, wenn sie Folgendes erkennt:
- Benutzerinteraktion mit dem Gerät
- Gerätebewegung
- Gerätebildschirm schaltet sich ein
- Unmittelbarer AlarmClock-Alarm
Benachrichtigungen führen nicht dazu, dass das Gerät Doze beendet.
Android 7.0 und höher erweitert Doze, indem es bei ausgeschaltetem Bildschirm einen leichten Schlafmodus aktiviert, bevor das Gerät inaktiv ist.
Aktion | Dösen | Leichtes Dösen |
---|---|---|
Abzug | Bildschirm aus, auf Akku, stationär | Bildschirm aus, auf Akku (ausgesteckt) |
Zeitliche Koordinierung | Zeiträume mit Wartung sukzessive erhöhen | Wiederholte N-Minuten-Perioden mit Wartungsfenstern |
Beschränkungen | Kein Netzwerkzugriff, Wecksperre oder GPS/Wi-Fi-Scan; Alarme und aufgeschobene Jobs/Synchronisierungen | Kein Netzwerkzugriff; Aufträge/Synchronisierungen verzögert, außer während Wartungsfenstern |
Verhalten | Es werden nur Push-Benachrichtigungen mit hoher Priorität empfangen | Alle empfangenen Echtzeitnachrichten (Sofortnachrichten, Anrufe usw.); Push-Benachrichtigung mit hoher Priorität ermöglicht temporären Netzwerkzugriff |
Ausgang | 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.
Integrieren von Doze
Wenn Doze aktiviert ist, führen Geräte, die SENSOR_TYPE_SIGNIFICANT_MOTION
unterstützen, vollständige Doze-Optimierungen durch (einschließlich leichter Optimierungen); Geräte ohne SMD führen nur leichte Doze-Optimierungen durch. Android wählt automatisch die geeigneten Doze-Optimierungen aus, und eine Anbieterkonfiguration ist nicht erforderlich.
So aktivieren Sie Doze für ein Gerät:
- Bestätigen Sie, 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:
- Verwenden Sie die Richtlinien zur Energiesparoptimierung . Einzelheiten finden Sie unter Apps testen und optimieren .
ODER
- Sind von Doze und App Standby ausgenommen. Einzelheiten finden Sie unter Ausnehmen von Anwendungen .
- Verwenden Sie die Richtlinien zur Energiesparoptimierung . 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 Downstream-Messaging .
- Wenn Ihre Benutzer sofort eine Benachrichtigung sehen müssen, verwenden Sie eine FCM-Nachricht mit hoher Priorität .
- Stellen Sie ausreichende Informationen innerhalb der anfänglichen Nachrichtennutzlast bereit (um unnötigen nachfolgenden Netzwerkzugriff zu vermeiden).
- Setzen Sie kritische Alarme mit
setAndAllowWhileIdle()
undsetExactAndAllowWhileIdle()
.
Apps testen und optimieren
Testen Sie alle Apps (insbesondere vorinstallierte Apps) im Doze-Modus. Einzelheiten finden Sie unter Testen mit Doze und App Standby .