アプリがバックグラウンドで Wi-Fi スキャンを実行すると、CPU が復帰して電池が消耗します。スキャンが多すぎると、デバイスの電池寿命が著しく短くなることがあります。PROCESS_STATE_BACKGROUND
または PROCESS_STATE_CACHED
状態のアプリは、バックグラウンドで実行されているとみなされます。
このドキュメントでは、アプリがバックグラウンドで Wi-Fi スキャンを過度に実施していることを検出する方法と、問題を診断し対処する方法について説明します。
問題を検出する
アプリが異常な回数の Wi-Fi スキャンを示していることを常に把握できるとは限りません。アプリをすでに公開している場合は、Android Vitals で問題を認識し、解決できます。
Android Vitals
Android Vitals を使用すると、アプリがバックグラウンドで Wi-Fi スキャンを過度に実施しているときに、Google Play Console を介してアラートを受け取ることができます。これは、アプリのパフォーマンスの改善に役立ちます。Android Vitals は、アプリが 1 時間あたり 4 回を超えるスキャンを実施している場合、Wi-Fi スキャンが過度であると判断します。Google Play Console では、この動作を示すバッテリー セッションの割合を確認できます。
バッテリー セッションの定義は、プラットフォームのバージョンによって異なります。
- Android 10 のバッテリー セッションは、指定された 24 時間以内に受信したすべてのバッテリー レポートが集約されたものです。バッテリー レポートは、2 回の充電(バッテリー残量が 20% 未満から 80% 超まで、または任意の充電レベルから 100% まで)の間隔を指します。
- Android 11 のバッテリー セッションは、固定の 24 時間です。
Google Play が Android Vitals のデータを収集する方法については、Play Console のドキュメントをご覧ください。
Wi-Fi スキャンを調査する
Battery Historian などのツールを使用すると、アプリのスキャン動作をより詳しく把握できます。Battery Historian により Wi-Fi スキャンの動作をアプリごとに可視化でき、アプリの状況をより明確に把握できます。Battery Historian について詳しくは、Battery Historian を使用して消費電力を分析するをご覧ください。
Battery Historian の使用方法については、Batterystats と Battery Historian のチュートリアルをご覧ください。
スキャンを減らす
可能であれば、アプリがフォアグラウンドで実行されている間に Wi-Fi スキャンを実施するようにします。フォアグラウンド サービスは自動的に通知を表示します。これにより、フォアグラウンドで Wi-Fi スキャンが実施されると、ユーザーはデバイスで Wi-Fi スキャンが実施された理由と時間を知ることができます。
フォアグラウンドでスキャンを実施する方法については、WifiManager
クラスのドキュメントをご覧ください。
バックグラウンドでの実行中にアプリが Wi-Fi スキャンの実施を余儀なくされる場合は、レイジー ファースト戦略を適用すると効果的です。レイジー ファーストでは、Wi-Fi スキャンを減らすために削減、延期、融合の 3 つの手法を使用できます。これらの手法について詳しくは、バッテリー寿命を長期化するために最適化するをご覧ください。
あなたへのおすすめ
- 注: JavaScript がオフになっている場合はリンクテキストが表示されます
- バックグラウンドでの過度のモバイル ネットワーク使用量