アプリがバックグラウンドでモバイル ネットワークに接続すると、アプリが CPU を復帰させ、無線通信がオンになります。これを繰り返すと、デバイスの電池が消耗する可能性があります。PROCESS_STATE_BACKGROUND
または PROCESS_STATE_CACHED
状態のアプリは、バックグラウンドで実行されているとみなされます。
このページでは、バックグラウンドでの実行中にモバイル ネットワークを過度に使用している原因を特定する方法と、その対処方法について説明します。
問題を検出する
バックグラウンドでの実行中にアプリが過度にネットワークを使用していることを常に把握できるとは限りません。アプリをすでに公開している場合は、Android Vitals で問題を認識し、解決できます。
Android Vitals
Android Vitals は、アプリがモバイル ネットワークをバックグラウンドで過度に使用している場合に Play Console を介してデベロッパーにアラートを送信することで、アプリのパフォーマンスの改善をサポートします。
Android Vitals は、アプリがバックグラウンドでの実行中にバッテリー セッションの 0.10% で 1 時間あたり合計 50 MB を送受信している場合、バックグラウンドでのネットワーク使用量が過度であると判断します。
バッテリー セッションの定義は、プラットフォームのバージョンによって異なります。
- Android 10 のバッテリー セッションは、指定された 24 時間以内に受信したすべてのバッテリー レポートが集約されたものです。バッテリー レポートは、2 回の充電(バッテリー残量が 20% 未満から 80% 超まで、または任意の充電レベルから 100% まで)の間隔を指します。
- Android 11 のバッテリー セッションは、固定の 24 時間です。
Google Play が Android Vitals のデータを収集する方法については、Play Console のドキュメントをご覧ください。
モバイル ネットワーク使用状況の調査
Battery Historian などのツールを使用すると、アプリのモバイル ネットワーク使用量をより詳しく把握できます。Battery Historian は、アプリごとにモバイル無線通信の使用を可視化します。これは、アプリで起きていることを明確に把握するのに役立ちます。Battery Historian の詳細については、Battery Historian を使用した消費電力の分析をご覧ください。アプリのモバイル ネットワーク使用状況を調査する際は、Mobile network use のラインに特に注意してください。
Battery Historian の使用方法については、Batterystats と Battery Historian のチュートリアルをご覧ください。
モバイル ネットワーク使用量を減らす
アプリのモバイル ネットワーク使用状況をフォアグラウンドに移動し、ダウンロード中であることをユーザーに通知し、ダウンロードを一時停止または停止するコントロールを表示できます。これを行うには、DownloadManager
を呼び出し、必要に応じて setNotificationVisibility(int)
を設定します。