Übermäßige Teil-Wakelocks

Teil-Wakelocks sind ein Mechanismus in der PowerManager API, mit dem Entwickler die CPU weiterlaufen lassen können, nachdem sich das Display eines Geräts ausgeschaltet hat (entweder aufgrund eines System-Timeouts oder weil der Nutzer die Ein/Aus-Taste gedrückt hat). Ihre App ruft einen Teil-Wakelock ab, indem sie acquire() mit dem PARTIAL_WAKE_LOCK Flag aufruft oder andere APIs verwendet, die Wakelocks abrufen. Eine übermäßige Verwendung von Teil-Wakelocks entlädt den Akku des Geräts, da sie verhindert, dass das Gerät in einen Energiesparmodus wechselt. Teil-Wakelocks sollten nur bei Bedarf verwendet und freigegeben werden, sobald sie nicht mehr benötigt werden.

Wenn Ihre App Teil-Wakelocks übermäßig verwendet, können Sie das Problem mithilfe der Informationen auf dieser Seite diagnostizieren und beheben.

Problem ermitteln

Mit Android Vitals können Sie herausfinden, wann Ihre App Teil-Wakelocks übermäßig verwendet.

Android Vitals

Android Vitals kann die Leistung Ihrer App verbessern, indem Sie über die Play Console benachrichtigt werden, wenn Ihre App Teil-Wakelocks übermäßig verwendet.

Android Vitals meldet die Verwendung von Teil-Wakelocks als übermäßig , wenn alle Teil-Wakelocks zusammengenommen in einem Zeitraum von 24 Stunden 2 Stunden oder länger laufen. 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 in Android Vitals Wakelocks, die von nutzerinitiierten APIs für Audio, Standort und JobScheduler erstellt wurden, nicht in die Berechnung einbezogen.

Das Dashboard für übermäßige Teil-Wakelocks in Android Vitals enthält Aufschlüsselungen der nicht ausgenommenen Wakelock-Namen, die mit Ihrer App verknüpft sind, sowie die betroffenen Sitzungen und Dauern.

Wenn übermäßige Teil-Wakelocks in mehr als 5% der App-Sitzungen auf allen Geräten in einem Zeitraum von 28 Tagen auftreten, kann sich dies auf die Sichtbarkeit Ihrer App bei Google Play auswirken.

Sobald Sie wissen, dass Ihre App übermäßige Teil-Wakelocks verwendet, müssen Sie das Problem beheben.

Problem beheben

Da Wakelocks den Akku des Geräts entladen können, sollten Sie sie nicht verwenden, wenn es eine Alternative gibt. In der Dokumentation Die richtige API auswählen, um das Gerät aktiv zu halten finden Sie die beste Lösung für Ihre App.

Wenn Sie einen Wakelock verwenden müssen, folgen Sie den Best Practices für Wakelocks damit sie die Effizienz des Geräts nicht beeinträchtigen. Achten Sie insbesondere darauf, dass alle von Ihnen abgerufenen Geräte freigegeben werden, und geben Sie den Wakelock so schnell wie möglich frei.

Ihre App verwendet möglicherweise auch Wakelocks, wenn Sie den Wakelock nicht explizit abrufen. Wenn Sie Wakelocks sehen, die der App zugeschrieben werden, die Sie aber nicht kennen, können Sie mit der Anleitung Wakelocks identifizieren, die von anderen APIs erstellt wurden die APIs 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 Wakelocks überprüfen.

Weitere Informationen