部分 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
當應用程式過度使用部分 Wake Lock 時,Android Vitals 會透過 Play 管理中心發出提醒,藉此改善應用程式效能。
如果所有部分 Wake Lock 的總執行時間在 24 小時內達到 2 小時以上,Android Vitals 就會將部分 Wake Lock 用量回報為過多。只有在應用程式處於背景或執行前景服務時,Android Vitals 才會追蹤 Wake Lock 持續時間。目前,Android Vitals 會將 音訊、位置資訊和 JobScheduler 使用者啟動的 API 建立的喚醒鎖定,從喚醒鎖定計算中排除。
Android Vitals 的「部分 Wake Lock 停滯」資訊主頁會細分與應用程式相關聯的非豁免 Wake Lock 名稱,並顯示受影響的會話和持續時間。
如果所有裝置在 28 天內,有超過 5% 的應用程式工作階段發生過度部分喚醒鎖定,一旦這項指標脫離 Beta 版,可能會影響應用程式在 Play 上的曝光度。
發現應用程式有過多部分 Wake Lock 後,接下來就要解決問題。
修正問題
由於 Wake Lock 可能會耗盡裝置電量,因此如有替代方案,請勿使用 Wake Lock。請參閱「選擇適當的 API 來保持裝置喚醒狀態」文件,找出最適合您應用程式的解決方案。
如果必須使用 Wake Lock,請遵循 Wake Lock 最佳做法,確保 Wake Lock 不會影響裝置效率。特別是,請確保釋放您取得的每部裝置,並盡快釋放鎖定。
即使您未明確取得 Wake Lock,應用程式也可能使用 Wake Lock。如果發現不明應用程式造成喚醒鎖定,請參閱這篇文章,瞭解如何找出其他 API 建立的喚醒鎖定。
修正程式碼中的問題後,您可以使用本機 Wake Lock 偵錯工具驗證修正內容。
另請參閱
為您推薦
- 注意:系統會在 JavaScript 關閉時顯示連結文字
- 凍結影格
- 在持續整合中執行基準測試
- 不使用 Macrobenchmark 建立及評估基準設定檔