Energieverwaltung für Plattformen mit Stromsparmodus

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 und JobScheduler-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:

  1. Prüfen Sie, ob auf dem Gerät ein Cloud-Messaging-Dienst installiert ist.
  2. Legen Sie in der Konfigurationsdatei für das Geräte-Overlay overlay/frameworks/base/core/res/res/values/config.xml den Wert config_enableAutoPowerModes auf true fest:
    <bool name="config_enableAutoPowerModes">true</bool>
    
    In AOSP ist dieser Parameter standardmäßig auf false (Doze deaktiviert) festgelegt.
  3. Prüfen Sie, ob die vorinstallierten Apps und Dienste:
  4. Prüfen Sie, ob die erforderlichen Dienste von Doze ausgenommen sind.

Tipps

Apps testen und optimieren

Testen Sie alle Apps (insbesondere vorinstallierte Apps) im Ruhemodus. Weitere Informationen finden Sie unter Mit Doze und App-Standby testen.