Das System priorisiert die Ressourcenanfragen von Apps basierend auf dem Gerätestatus, dem App-Status und dem Standby-Bucket der App.
Das Android-System kann Ressourcenlimits auf zwei verschiedene Arten erzwingen. Eine Möglichkeit zur Optimierung der Ressourcennutzung besteht darin, die Ausführung von Aufgaben so lange zu verschieben, bis das Gerät einen Energiesparmodus wie den Ruhemodus verlassen hat. Regelmäßige Jobs und ungenaue Wecker werden beispielsweise verschoben, damit sie ausgeführt werden, nachdem das Gerät den Ruhemodus verlassen hat.
Sie können auch festlegen, wie oft die App das Gerät aufwecken und Aufgaben ausführen darf, basierend auf dem aktuellen Standby-Bucket der App. Das System kann sowohl die Häufigkeit (wie oft die App das Gerät aufweckt) als auch die Gesamtdauer (wie lange das Gerät aktiv bleibt) reduzieren. Wenn sich die App beispielsweise im Standby-Bucket selten befindet, kann sie innerhalb eines rollierenden 24-Stunden-Zeitraums geplante Jobs insgesamt 10 Minuten lang ausführen.
Hinweis: WorkManager verwendet JobScheduler, um Aufgaben zu planen, wenn die App nicht sichtbar ist und Worker daher von Jobressourcenbeschränkungen betroffen sind.
Weitere Informationen zu den Einschränkungen finden Sie unter:
- Ressourcenlimits basierend auf dem Gerätestatus
- Ressourcenlimits basierend auf dem App-Status
- Ressourcenlimits basierend auf dem App-Standby-Bucket
Hinweis: Der Gerätestatus und der App-Status können die Limits für App-Standby-Buckets außer Kraft setzen. Wenn sich das Gerät beispielsweise gerade auflädt, erlaubt das System Apps im Standby-Bucket selten, Jobs innerhalb eines rollierenden 24-Stunden-Zeitraums länger als 10 Minuten auszuführen.
Es gab Verhaltensänderungen, die sich auch auf die Ressourcenlimits ausgewirkt haben. Weitere Informationen finden Sie unter Änderungen am Android-Verhalten, die sich auf Ressourcenlimits auswirken.
Ressourcenlimits basierend auf dem Gerätestatus
Das System kann Ressourcenlimits auch je nach Gerätestatus ausnehmen oder erzwingen. Beispielsweise erhält ein Gerät im Status Laden uneingeschränkten Ressourcenzugriff, unabhängig von seinem App-Standby-Bucket.
Gerätestatus |
Jobs |
Wecker |
Netzwerkzugriff |
Firebase Cloud Messaging |
Wird geladen |
Keine Ausführungsbeschränkungen, mit Ausnahme des eingeschränkten Standby-Buckets |
Keine Ausführungslimits für alle Standby-Buckets und Prozessstatus, es sei denn, der Nutzer schränkt die Akkunutzung der App manuell ein |
Keine Beschränkungen |
Keine Beschränkungen |
Bildschirm an |
Ausführungslimits werden basierend auf dem Standby-Bucket erzwungen |
Ausführungslimits werden basierend auf dem App-Prozess und dem Standby-Bucket erzwungen. |
Der Zugriff hängt vom Status des Standby-Buckets oder des App-Prozesses ab |
Keine Beschränkungen |
Display aus und Ruhemodus aktiv |
Ausführungslimits werden basierend auf dem Standby-Bucket erzwungen und die Ausführung wird auf das Wartungsfenster für den Ruhemodus verschoben. |
Ausführungslimits werden basierend auf dem Standby-Bucket erzwungen. Regelmäßige Wecker: Verschoben in das Wartungsfenster für den Ruhemodus Wecker bei Inaktivität: auf 7 pro Stunde beschränkt |
Während des Ruhemodus eingeschränkt |
Hohe Priorität: Keine Ausführungsbeschränkungen Normale Priorität: Verschoben auf das Wartungsfenster für den Ruhemodus |
Ressourcenlimits basierend auf dem App-Status
Ob das System die Ressourcenlimits des App-Standby-Buckets erzwingt, hängt von der Wichtigkeit des App-Prozesses ab. Unter ActivityManager.RunningAppProcessInfo.importance
erfahren Sie mehr über die verschiedenen Wichtigkeitsstufen von Prozessen.
Der Gerätenutzer kann die Optimierungen der App-Energieverwaltung auch manuell überschreiben. Dadurch werden die Limits für den App-Standby-Bucket außer Kraft gesetzt.
App-Status |
Jobs |
Wecker |
Netz |
App-Prozess ist sichtbar oder im Vordergrund |
Keine Ausführungslimits |
Keine Häufigkeitsbeschränkungen |
Keine Beschränkungen |
Der App-Prozess führt einen Dienst im Vordergrund aus |
Ausführungslimits werden basierend auf dem Standby-Bucket erzwungen.*** |
Häufigkeitslimits werden basierend auf dem Standby-Bucket erzwungen. |
Keine Beschränkungen |
Nutzer schränkt Akkunutzung von App manuell ein |
Ausführung ist eingeschränkt |
Ausführung ist eingeschränkt |
Zugriff hängt vom Verhalten des Standby-Buckets ab |
Nutzer hebt die Akkueinschränkungen für eine App manuell auf |
Das Limit für die Ausführung ist großzügig bemessen.*** |
Keine Ausführungslimits |
Uneingeschränkt, es sei denn, das Gerät befindet sich im Datensparmodus |
*** Das Verhalten der Ausführungsquote für Jobs wurde in Android 16 geändert. Vor Android 16 gab es kein Ausführungslimit, wenn die App einen Dienst im Vordergrund ausführte oder der Nutzer den Akkuverbrauch der App nicht eingeschränkt hatte.
Ressourcenlimits basierend auf dem App-Standby-Bucket
Hinweis: Die Werte in dieser Tabelle sind keine Garantie für die Ausführungsdauer, da sich andere Gerätebedingungen oder Bucket-Änderungen auf Ressourceneinschränkungen auswirken können. Die Werte können sich auch in zukünftigen Android-Releases ändern.
Regelmäßige Jobs, beschleunigte Jobs, Benachrichtigungen und der Netzwerkzugriff können je nach App-Standby-Bucket eingeschränkt werden. Anhand dieser ungefähren Einschränkungen der Energieverwaltung können Sie nachvollziehen, wie sich App-Standby-Buckets auf Ihre App auswirken. Für eine optimale Leistung sollten Sie die Best Practices für den App-Standby einhalten und die Akkunutzung für APIs zur Aufgabenplanung optimieren.
Ab Android 13 wird nicht mehr über den Standby-Bucket der App bestimmt, wie viele FCM-Nachrichten mit hoher Priorität eine App verwenden kann.
App-Standby-Bucket |
Regelmäßige Jobs* |
Express-Jobs** |
Wecker |
Netz |
Aktiv: |
Bis zu 20 Minuten in einem rollierenden 60-Minuten-Zeitraum*** |
Bis zu 30 Minuten innerhalb eines rollierenden 24-Stunden-Zeitraums*** |
Keine Ausführungslimits |
Keine Beschränkungen |
Arbeitssatz: |
Bis zu 10 Minuten in einem rollierenden Zeitraum von 4 Stunden |
Bis zu 15 Minuten in einem rollierenden 24-Stunden-Zeitraum |
Begrenzt auf 10 pro Stunde |
Keine Beschränkungen |
Häufig: |
Bis zu 10 Minuten in einem rollierenden 12-Stunden-Zeitraum |
Bis zu 10 Minuten innerhalb eines rollierenden 24-Stunden-Zeitraums |
Begrenzt auf 2 pro Stunde |
Keine Beschränkungen |
Selten: |
Bis zu 10 Minuten innerhalb eines rollierenden 24-Stunden-Zeitraums |
Bis zu 10 Minuten innerhalb eines rollierenden 24-Stunden-Zeitraums |
Begrenzt auf 1 pro Stunde |
Deaktiviert |
Eingeschränkt: |
Einmal täglich bis zu 10 Minuten |
Bis zu 5 Minuten in einem rollierenden 24-Stunden-Fenster |
Einen Wecker pro Tag, entweder einen genauen Wecker oder einen ungenauen Wecker |
Deaktiviert |
* Reguläre Jobs sind Jobs, für die im JobScheduler keine setUserInitiated(true)
- oder setExpedited(true)
-Flags oder im WorkManager keine expedited workers verwendet werden.
** Beschleunigte Jobs haben ein eigenes Ausführungslimit. Sie können im WorkManager so konfiguriert werden, dass sie mit den Ausführungslimits für reguläre Jobs fortgesetzt werden, sobald die beschleunigten Limits ausgeschöpft sind.
*** Das Verhalten der Ausführungsquote für Jobs wurde in Android 16 geändert. Vor Android 16 gab es kein Ausführungslimit, wenn sich die App im aktiven Standby-Bucket befand.
Änderungen am Android-Verhalten, die sich auf Ressourcenlimits auswirken
Bei den folgenden Android-Updates wurden Änderungen an den App-Ressourcenlimits vorgenommen.
Android 16
Änderung beim Verhalten der JobScheduler-Kontingentoptimierung
Android hat das Laufzeitkontingent für die reguläre und beschleunigte Jobausführung anhand der folgenden Faktoren angepasst:
- Der App-Standby-Bucket, in dem sich die App befindet
- Wenn die Ausführung des Jobs gestartet wird, während sich die App in einem Top-Status befindet
- Wenn der Job ausgeführt wird, während ein Dienst im Vordergrund ausgeführt wird
Android 13
Wichtige Änderung am Verhalten von Firebase Cloud Messaging-Kontingenten (FCM)
- Anhand von App-Standby-Buckets wird nicht mehr festgelegt, wie viele FCMs mit hoher Priorität eine App verwenden kann.
- Das System stuft Nachrichten mit hoher Priorität jetzt herab, wenn es eine App erkennt, die ständig Nachrichten mit hoher Priorität sendet, die nicht zu einer Benachrichtigung führen.
- Aktuelle Richtlinien für Nachrichten mit hoher Priorität finden Sie in der Firebase-Dokumentation zum Festlegen und Verwalten der Nachrichtenpriorität.
Android 9
Die Funktion „App-Standby-Buckets“ wird eingeführt
Android 9 enthält eine neue Funktion zur Akkuverwaltung: App-Standby-Buckets. Mit App-Standby-Buckets kann das System die Ressourcenanfragen von Apps basierend darauf priorisieren, wie aktuell und wie häufig die Apps verwendet werden. Basierend auf den Nutzungsmustern der App wird jede App in einen der fünf Prioritätsbereiche eingeordnet. Das System begrenzt die für jede App verfügbaren Geräteressourcen je nach Bucket, in dem sich die App befindet.