Teil-Wakelocks sind ein Mechanismus in der PowerManager
API, mit dem Entwickler die CPU aktiv halten können, nachdem das Display eines Geräts ausgeschaltet wurde (entweder aufgrund eines System-Timeouts oder weil der Nutzer die Ein-/Aus-Taste gedrückt hat). Ihre App ruft acquire()
mit dem Flag PARTIAL_WAKE_LOCK
auf oder verwendet andere APIs, die Wake Locks abrufen, um ein partielles Wake Lock zu erhalten.
Durch die übermäßige Verwendung von partiellen Wakelocks wird der Akku des Geräts entladen, da das Gerät nicht in den Energiesparmodus wechseln kann. Teilweise Wake Locks sollten nur bei Bedarf verwendet und freigegeben werden, sobald sie nicht mehr benötigt werden.
Wenn Ihre App übermäßig viele partielle Weck-Locks verwendet, können Sie das Problem mithilfe der Anleitung auf dieser Seite diagnostizieren und beheben.
Ihr Feedback ist wichtig, damit wir unsere Dokumentation verbessern können. Bitte geben Sie uns über den folgenden Link Feedback:
Problem erkennen
Mit Android Vitals können Sie herausfinden, wann die Verwendung von partiellen Wakelocks in Ihrer App übermäßig ist.
Android Vitals
Android Vitals kann Ihnen helfen, die Leistung Ihrer App zu verbessern, indem Sie über die Play Console benachrichtigt werden, wenn Ihre App zu viele partielle Wake Locks verwendet.
In Android Vitals wird die Verwendung von Teil-Wakelocks als übermäßig gemeldet, wenn alle Teil-Wakelocks zusammen in einem Zeitraum von 24 Stunden 2 Stunden oder länger ausgeführt werden. Android Vitals erfasst die Dauer von Wakelocks nur, wenn der Wakelock gehalten wird, während die App im Hintergrund ausgeführt wird oder ein Dienst im Vordergrund ausgeführt wird. Derzeit werden Wake Locks, die von den nutzerinitiierten APIs audio, location und JobScheduler erstellt wurden, nicht in die Berechnung der Android Vitals einbezogen.
Das Dashboard „Übermäßige teilweise Wakelocks“ von Android Vitals enthält Aufschlüsselungen der nicht ausgenommenen Wakelock-Namen, die mit Ihrer App verknüpft sind. Außerdem werden betroffene Sitzungen und Zeiträume angezeigt.
Wenn in mehr als 5% der App-Sitzungen auf allen Geräten innerhalb eines Zeitraums von 28 Tagen übermäßig viele Teil-Wakelocks auftreten, kann sich das auf die Sichtbarkeit Ihrer App bei Google Play auswirken, sobald die Messwerte nicht mehr in der Betaphase sind.
Wenn Sie feststellen, dass Ihre App übermäßige Teil-Wakelocks hat, müssen Sie das Problem beheben.
Problem beheben
Da Wake Locks den Geräteakku entladen können, sollten Sie sie nur verwenden, wenn es keine Alternative gibt. In der Dokumentation Die richtige API auswählen, um das Gerät aktiv zu halten finden Sie Informationen zur besten Lösung für Ihre App.
Wenn Sie einen Wake Lock verwenden müssen, halten Sie sich an die Best Practices für Wake Locks, damit Ihre Wake Locks die Effizienz des Geräts nicht beeinträchtigen. Achten Sie insbesondere darauf, dass jedes erworbene Gerät freigegeben wird, und geben Sie die Sperre so schnell wie möglich auf.
Ihre App verwendet möglicherweise auch dann Wake Locks, wenn Sie sie nicht explizit abrufen. Wenn Sie Wake Locks sehen, die der App zugeordnet sind und die Sie nicht kennen, kann Ihnen Wake Locks identifizieren, die von anderen APIs erstellt wurden helfen, die APIs zu ermitteln, die sie möglicherweise erstellt haben.
Nachdem Sie das Problem im Code behoben haben, können Sie Ihre Korrekturen mit lokalen Debugging-Tools für Wake Locks überprüfen.
Siehe auch
- Hängende Teil-Wakelocks
- Die richtige API auswählen, damit das Gerät aktiv bleibt
- Dokumentation zu Wake Locks
Empfehlungen für dich
- Hinweis: Linktext wird angezeigt, wenn JavaScript deaktiviert ist.
- Eingefrorene Frames
- Benchmarks in Continuous Integration ausführen
- Baseline-Profile ohne Macrobenchmark erstellen und messen