部分的な wake lock は PowerManager API のメカニズムです。これにより、
デベロッパーはデバイスのディスプレイがオフになった後も(システム タイムアウトが原因であっても、
ユーザーが電源ボタンを押したことが原因であっても)CPU を動作させ続けられます。アプリで
部分的な wake lock が取得されます。これは、PARTIAL_WAKE_LOCK
フラグを指定して acquire() を呼び出すか、wake lock を取得する他の API を使用した場合です。
部分的な wake lock を過度に使用すると、デバイスが省電力状態に移行できなくなるため、デバイスの電池が消耗します。部分的な wake lock は必要なときにのみ使用し、不要になったらすぐに解放する必要があります。
アプリで部分的な wake lock が過度に使用されている場合は、このページのガイダンスが問題の診断と解決に役立ちます。
問題を検出する
Android Vitals を使用すると、アプリで部分的な wake lock が過度に使用されているかどうかを確認できます。
Android Vitals
Android Vitals を使用すると、アプリで部分的な wake lock が 過度に使用されているときに、Google Play Console を介してアラートを受け取ることができます。これは、アプリのパフォーマンスを改善するために役立ちます。
Android Vitals では、24 時間以内にすべての 部分的な wake lock の合計実行時間が 2 時間以上になると、部分的な wake lock の使用が過度 であると報告されます。Android Vitals は、アプリがバックグラウンドにあるとき、またはフォアグラウンド サービスを実行しているときに wake lock が保持されている場合にのみ、wake lock の期間を追跡します。 現在、Android Vitals では、音声、 位置情報、JobScheduler のユーザー開始 API によって作成された wake lock は、 wake lock の計算から除外されます。
Android Vitals の部分的な wake lock の過度な使用に関するダッシュボードには、アプリに関連付けられている除外対象外の wake lock 名の内訳が表示され、影響を受けるセッションと期間が示されます。
28 日間のすべてのデバイスで、アプリ セッションの 5% 以上で部分的な wake lock が過度に使用されている場合、Google Play でのアプリの視認性に影響する可能性があります。
アプリで部分的な wake lock が過度に使用されていることがわかったら、問題に対処することが次のステップになります。
問題を解決する
wake lock はデバイスの電池を消耗させる可能性があるため、代替手段がある場合は wake lock を使用しないでください。 デバイスの電源を入れたままにするための適切な API を選択する のドキュメントは、アプリに最適なソリューションを見つけるのに役立ちます。
wake lock を使用する必要がある場合は、wake lock のベスト プラクティスに従って 、wake lock がデバイスの効率に悪影響を与えないようにしてください。特に、取得したすべてのデバイスが解放されていることを確認し、できるだけ早くロックを解除してください。
wake lock を明示的に取得していない場合でも、アプリが wake lock を使用している可能性があります。 認識できないアプリに wake lock が関連付けられている場合は、 他の API によって作成された wake lock を特定する と、それらを作成した可能性のある API を特定できます。
コードの問題を解決したら、ローカル wake lock デバッグツールを使用して修正を確認できます。
関連情報
あなたへのおすすめ
- 注: JavaScript がオフになっている場合はリンクテキストが表示されます
- フリーズしたフレーム
- 継続的インテグレーションでベンチマークを実行する
- Macrobenchmark を使用せずにベースライン プロファイルを作成して測定する