部分 Wake Lock 使用過度 (Beta 版)

部分 Wake Lock 是 PowerManager API 中的一項機制,可以讓開發人員在關閉裝置螢幕 (無論是因為系統逾時還是因為使用者按下電源鍵) 之後繼續運行 CPU。應用程式可以使用 PARTIAL_WAKE_LOCK 標記呼叫 acquire(),或使用其他可取得 Wake Lock 的 API,取得部分 Wake Lock。過度使用部分 Wake Lock 會耗盡裝置電量,因為這會阻止裝置進入電量較低的狀態。您應只在必要時使用部分 Wake Lock,並於不再需要時立即釋放。

如果應用程式過度使用部分 Wake Lock,您可以參考本頁面提供的指南診斷及修正問題。

您的意見回饋對改善說明文件至關重要。請透過以下連結提供意見回饋:

提供意見

偵測問題

Android Vitals 可協助您找出應用程式使用部分 Wake Lock 過多時的情況。

Android Vitals

當應用程式使用過多部分喚醒鎖定時,Android Vitals 會透過 Play 管理中心發出提醒,藉此改善應用程式效能。

如果所有部分 Wake Lock加總起來,在 24 小時內執行 3 小時以上,Android Vitals 就會將部分 Wake Lock 用量列為過多

只有在應用程式處於背景沒有前景服務時,Android Vitals 才會追蹤 Wake Lock 的時間。

如果使用部分喚醒鎖定可為使用者帶來明顯的益處,且沒有比使用部分喚醒鎖定更佳的方法,Android Vitals 會針對部分喚醒鎖定的使用方式提供一些豁免條件。在這種情況下,Android Vitals 可能不會將部分 Wake Lock 時間計入 3 小時的限制。舉例來說,如果應用程式正在為使用者播放音訊,則保持裝置喚醒狀態有明顯的好處,而且如果不讓裝置保持喚醒狀態,就無法播放音訊。在這種情況下,部分 Wake Lock 時間不會計入 Android Vitals。

如果在 28 天內,所有裝置的應用程式工作階段中,有超過 5% 出現過度使用部分喚醒鎖定,則在指標脫離 Beta 版後,可能會影響應用程式在 Play 上的曝光率。

發現應用程式有過多部分 Wake Lock 後,接下來就要解決問題。

修正問題

由於 Wake Lock 可能會耗盡裝置電池電力,因此如果有其他替代方案,請勿使用 Wake Lock。選擇正確的 API 讓裝置保持喚醒狀態說明文件可協助您為應用程式找到最佳解決方案。

如果您確實需要使用喚醒鎖定,請遵循喚醒鎖定的最佳做法,確保喚醒鎖定不會影響裝置效率。特別是,請確保您取得的每部裝置都已釋放,並盡快釋放鎖定裝置。

修正程式碼中的問題後,您可以使用本機喚醒鎖定偵錯工具驗證修正結果。

另請參閱