Plattform-Energieverwaltung

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 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.

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.

Abbildung 1. Doze-Modi für nicht stationäre und stationäre Geräte
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:

  1. Bestätigen Sie, 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 .