バックグラウンドでの過度のモバイル ネットワーク使用量

アプリがバックグラウンドでモバイル ネットワークに接続すると、アプリが 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) を設定します。