Um die Akkulaufzeit des Geräts zu verlängern, kann Android den Gerätestatus beeinflussen, indem die Gerätenutzung und der Ruhemodus überwacht werden. Die Plattform kann in den Ruhemodus wechseln, um Aktivitäten anzuhalten, während das Gerät nicht verwendet wird.
Stromsparmodus
Der Ruhemodus verlängert die Akkulaufzeit, indem die CPU- und Netzwerkaktivitäten von Apps im Hintergrund verschoben werden, wenn ein Gerät längere Zeit nicht verwendet wird.
Inaktive Geräte in Doze werden regelmäßig in ein Wartungsfenster versetzt, in dem Apps ausstehende Aufgaben (Synchronisierungen, Jobs usw.) abschließen können. Doze setzt den Ruhemodus dann für einen längeren Zeitraum fort, gefolgt von einem weiteren Wartungsfenster. Die Plattform setzt die Doze-Ruhe-/Wartungssequenz fort und erhöht jedes Mal die Inaktivitätsdauer, bis eine maximale Ruhezeit von einigen Stunden erreicht wird. Ein Gerät im Ruhemodus bleibt jederzeit für Bewegungen sensibilisiert und verlässt den Ruhemodus sofort, wenn eine Bewegung erkannt wird.
Unter Android 7.0 und höher wird Doze erweitert, um jedes Mal, wenn ein Nutzer das Display des Geräts ausschaltet, eine Reihe von weniger umfassenden Optimierungen auszulösen. Das ist auch dann der Fall, wenn sich der Nutzer weiter bewegt. So wird die Akkulaufzeit verlängert.
Wichtige Systemdienste werden in der Regel von Geräteherstellern so eingerichtet, dass sie von Doze ausgenommen sind. Nutzer können bestimmte Apps auch über das Menü „Einstellungen“ von Doze ausnehmen. Wenn Sie Apps jedoch ausnehmen, kann dies zu einer schnelleren Akkuentladung des Geräts führen. Doze ist in AOSP standardmäßig deaktiviert. Weitere Informationen zum Aktivieren von Doze finden Sie unter Doze einbinden.
Anforderungen an den Ruhemodus
Für den Doze-Support muss das Gerät einen Cloud-Messaging-Dienst wie Firebase Cloud Messaging (FCM) haben. Externe Triggerereignisse wie Cloud-Nachrichten können Apps vorübergehend aktivieren, damit sie Aufgaben ausführen, während das Gerät im Ruhemodus bleibt.
Für die vollständige Unterstützung von Doze ist außerdem ein signifikanter Bewegungsmelder (Significant Motion Detector, SMD) auf dem Gerät erforderlich. Für den leichten Doze-Modus unter Android 7.0 und höher ist jedoch kein SMD erforderlich. Wenn der Ruhemodus auf einem Gerät aktiviert ist, gilt Folgendes:
- Es hat ein SMD. Es werden vollständige Doze-Optimierungen durchgeführt (einschließlich leichter Optimierungen).
- Es gibt kein SMD. Es werden nur die leichten Doze-Optimierungen durchgeführt.
Doze-Lebenszyklus
Der Ruhemodus beginnt, wenn die Plattform erkennt, dass das Gerät inaktiv ist, und endet, wenn eine oder mehrere Aktivitätsauslöser auftreten.
Die Plattform erkennt, dass ein Gerät inaktiv ist, wenn:
- Das Gerät ist stationär (SMD wird verwendet).
- Das Display des Geräts ist für eine gewisse Zeit aus.
Der Ruhemodus wird nicht aktiviert, wenn ein batteriebetriebenes Gerät an ein Ladegerät angeschlossen ist.
Während des Ruhemodus
Die Plattform versucht, das System im Ruhemodus zu halten, und setzt den normalen Betrieb während eines Wartungsfensters regelmäßig fort, bevor das Gerät dann für längere Zeiträume wieder in den Ruhemodus versetzt wird. Während des Ruhemodus sind die folgenden Einschränkungen aktiv:
- Apps ist der Zugriff auf das Netzwerk nicht erlaubt.
- App-Wakelocks werden ignoriert.
- Wecker werden verschoben. Ausgenommen sind Wecker und Wecker, die mit
setAndAllowWhileIdle()
gestellt werden (in der Ruhemodus-Funktion auf 1 pro 15 Minuten pro App beschränkt). Diese Ausnahme gilt für Apps wie Google Kalender, die Benachrichtigungen zu Terminerinnerungen anzeigen müssen. - WLAN-Scans werden nicht durchgeführt.
SyncAdapter
-Synchronisierungen undJobScheduler
-Jobs werden bis zum nächsten Wartungsfenster verschoben.- Apps, die SMS und MMS empfangen, werden vorübergehend auf die Zulassungsliste gesetzt, damit sie die Verarbeitung abschließen können.
Beenden
Die Plattform beendet den Ruhemodus des Geräts, wenn Folgendes erkannt wird:
- Nutzerinteraktion mit dem Gerät
- Gerätebewegung
- Display des Geräts wird eingeschaltet
- Anstehender Weckruf
Benachrichtigungen führen nicht dazu, dass das Gerät den Ruhemodus beendet.
Unter Android 7.0 und höher wird Doze erweitert, indem ein leichter Ruhemodus aktiviert wird, wenn der Bildschirm ausgeschaltet ist, bevor das Gerät inaktiv wird.
Abbildung 1: Ruhemodus für nicht stationäre und stationäre Geräte
Aktion | Stromsparmodus | Leichter Ruhemodus |
---|---|---|
Auslöser | Display aus, Akkubetrieb, stationär | Display aus, Akkubetrieb (nicht angeschlossen) |
Timing | Nacheinander längere Wartungszeiträume | Wiederholte Zeiträume von N Minuten mit Wartungsfenstern |
Einschränkungen | Kein Netzwerkzugriff, kein Wakelock und kein GPS-/WLAN-Scan; Wecker und Jobs/Synchronisierungen werden verschoben | Kein Netzwerkzugriff; Jobs/Synchronisierungen werden mit Ausnahme von Wartungsfenstern verschoben |
Verhalten | Nur Push-Benachrichtigungen mit hoher Priorität werden empfangen | Alle empfangenen Echtzeitnachrichten (z. B. Chatnachrichten, Anrufe); Push-Benachrichtigung mit hoher Priorität ermöglicht vorübergehenden Netzwerkzugriff |
Beenden | Bewegungs-, Display- oder Weckeralarm | Bildschirm an |
Interaktion mit dem App-Standby
- Die Zeit, die im Ruhemodus verbracht wird, wird nicht auf den App-Standby angerechnet.
- Wenn sich das Gerät im Ruhemodus befindet, dürfen inaktive Apps mindestens einmal täglich normale Vorgänge ausführen.
Doze einbinden
Wenn der Ruhemodus aktiviert ist, werden auf Geräten, die SENSOR_TYPE_SIGNIFICANT_MOTION
unterstützen, vollständige Ruhemodus-Optimierungen (einschließlich der optimierten Ruhemodus-Funktionen) durchgeführt. Auf Geräten ohne SMD werden nur optimierte Ruhemodus-Funktionen ausgeführt. Android wählt automatisch die geeigneten Doze-Optimierungen aus. Eine Konfiguration durch den Anbieter ist nicht erforderlich.
So aktivieren Sie den Ruhemodus für ein Gerät:
- Prüfen Sie, ob auf dem Gerät ein Cloud-Messaging-Dienst installiert ist.
- Legen Sie in der Konfigurationsdatei für das Geräte-Overlay
overlay/frameworks/base/core/res/res/values/config.xml
den Wertconfig_enableAutoPowerModes
auftrue
fest: In AOSP ist dieser Parameter standardmäßig auf<bool name="config_enableAutoPowerModes">true</bool>
false
(Doze deaktiviert) festgelegt.
- Prüfen Sie, ob die vorinstallierten Apps und Dienste:
- Beachten Sie die Richtlinien zur Optimierung der Energiesparfunktionen. Weitere Informationen finden Sie unter Apps testen und optimieren.
OR
- sind vom Doze- und App-Standby-Modus ausgenommen. Weitere Informationen finden Sie unter Apps ausnehmen.
- Beachten Sie die Richtlinien zur Optimierung der Energiesparfunktionen. Weitere Informationen finden Sie unter Apps testen und optimieren.
- Prüfen Sie, ob die erforderlichen Dienste von Doze ausgenommen sind.
Tipps
- Verwenden Sie nach Möglichkeit FCM für Downstream-Messaging.
- Wenn Ihre Nutzer sofort eine Benachrichtigung sehen müssen, verwenden Sie eine FCM-Mitteilung mit hoher Priorität.
- Geben Sie in der ursprünglichen Nutzlast der Nachricht genügend Informationen an, um unnötigen nachfolgenden Netzwerkzugriff zu vermeiden.
- Stellen Sie wichtige Wecker mit
setAndAllowWhileIdle()
undsetExactAndAllowWhileIdle()
.
Apps testen und optimieren
Testen Sie alle Apps (insbesondere vorinstallierte Apps) im Ruhemodus. Weitere Informationen finden Sie unter Mit Doze und App-Standby testen.