RSS Android開発者ブログ フォロー Android Vitalsのウェイクロック指標でアプリのバッテリー消費を最適化する バッテリー寿命はユーザーエクスペリエンスにとって非常に重要であり、ウェイクロックはそれに大きな影響を与えます。過剰な部分ウェイクロックの使用は、現在、Google Play Console の Android Vitals における主要なパフォーマンス指標となっています。この指標は、24時間以内に免除対象外のウェイクロックを2時間以上保持しているアプリをフラグ付けし、28日間で5%以上のセッションに影響を与えます。オーディオ、位置情報、JobScheduler によって開始された API は、この計算から除外されます。ウェイクロックを使用すると、アプリはデバイスがアクティブに使用されていない場合でも CPU を実行し続けることができます。部分ウェイクロックは、画面がオフになっていても CPU をアクティブに保ち、低電力状態を防ぎます。不適切または過剰なウェイクロックの使用は、バッテリーの著しい消耗とユーザーからの苦情につながります。「画面をオンにしたままにする」ドキュメントや既存の API のような代替手段を検討してから、手動で部分ウェイクロックを取得してください。ウェイクロックを手動で取得する場合は、個人を特定できる情報や動的な要素を含まない、説明的でハードコードされた文字列名を使用してください。バッテリーの消耗を防ぐために、取得したウェイクロックは常に解放することが不可欠です。try-finally ブロックまたはタイムアウトを使用してください。WorkManager、SensorManager のバッチ処理、または Fused Location Provider の使用の最適化などの方法でウェイクアップ頻度を減らすことも、バッテリーを節約できます。過剰なウェイクロックのデバッグは、Play Console から始まります。Play Console は、ウェイクロック名と影響を受けたセッションを分類します。ワーカーが保持するウェイクロックの場合は、Android Studio のバックグラウンドタスクインスペクターまたは WorkInfo.getStopReason() を使用して、フィールドでのデバッグを行います。その他のウェイクロックタイプの場合は、コマンドラインツール、Android Studio Profiler、または Perfetto UI を使用したシステムトレースの収集が推奨されます。システムトレースで関連データを表示するには、「power:PowerManagement」Atrace カテゴリを有効にすることが不可欠です。Perfetto UI を使用すると、タイムライン上のウェイクロックのスライスを視覚的に検査できます。SQL 分析を使用すると、複数のトレースにわたる過剰な使用の主な原因を効率的に特定できます。再現が難しい問題の場合は、ProfilingManager (SDK 35+) がフィールドでのシステムトレース収集のプログラムによる制御を提供します。ウェイクロックを正しく理解して実装し、ベストプラクティスに従い、デバッグツールを活用することが、アプリのバッテリーパフォーマンスを最適化するための鍵となります。 Optimize your app battery using Android vitals wake lock metric android-developers.googleblog.com
try-finallyブロックまたはタイムアウトを使用してください。WorkManager、SensorManager のバッチ処理、または Fused Location Provider の使用の最適化などの方法でウェイクアップ頻度を減らすことも、バッテリーを節約できます。過剰なウェイクロックのデバッグは、Play Console から始まります。Play Console は、ウェイクロック名と影響を受けたセッションを分類します。ワーカーが保持するウェイクロックの場合は、Android Studio のバックグラウンドタスクインスペクターまたはWorkInfo.getStopReason()を使用して、フィールドでのデバッグを行います。その他のウェイクロックタイプの場合は、コマンドラインツール、Android Studio Profiler、または Perfetto UI を使用したシステムトレースの収集が推奨されます。システムトレースで関連データを表示するには、「power:PowerManagement」Atrace カテゴリを有効にすることが不可欠です。Perfetto UI を使用すると、タイムライン上のウェイクロックのスライスを視覚的に検査できます。SQL 分析を使用すると、複数のトレースにわたる過剰な使用の主な原因を効率的に特定できます。再現が難しい問題の場合は、ProfilingManager (SDK 35+) がフィールドでのシステムトレース収集のプログラムによる制御を提供します。ウェイクロックを正しく理解して実装し、ベストプラクティスに従い、デバッグツールを活用することが、アプリのバッテリーパフォーマンスを最適化するための鍵となります。