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

アプリがバックグラウンドでモバイル ネットワークに接続すると、アプリが CPU を復帰させ、無線通信がオンになります。これが繰り返されると、デバイスのバッテリーが消耗する可能性があります。PROCESS_STATE_BACKGROUND または PROCESS_STATE_CACHED 状態のアプリは、バックグラウンドで実行されているとみなされます。

このページでは、アプリがバックグラウンドでの実行中にモバイル ネットワークを過度に使用している原因を特定する方法と、その対処方法について説明します。

問題を検出する

バックグラウンドでの実行中にアプリが過度にネットワークを使用していることを常に把握できるとは限りません。アプリをすでに公開している場合は、Android Vitals で問題を認識し、解決できます。

Android Vitals

Android Vitals を使用すると、アプリがバックグラウンドでモバイル ネットワークを過度に使用しているときに、Google Play Console を介してアラートを受け取ることができます。これは、アプリのパフォーマンスの改善に役立ちます。

Android Vitals は、アプリがバックグラウンドでの実行中に 1 日あたり合計 50 MB を送受信している場合、バックグラウンドのネットワーク使用量が過度であると判断します。Google Play Console では、この動作を示すバッテリー セッションの割合を確認できます。

バッテリー セッションの定義は、プラットフォームのバージョンによって異なります。

  • Android 10 のバッテリー セッションは、指定された 24 時間以内に受信したすべてのバッテリー レポートが集約されたものです。バッテリー レポートは、2 回の充電(バッテリー残量が 20% 未満から 80% 超まで、または任意の充電レベルから 100% まで)の間隔を指します。
  • Android 11 のバッテリー セッションは、固定の 24 時間です。

Google Play が Android Vitals のデータを収集する方法については、Google Play Console のドキュメントをご覧ください。

モバイル ネットワーク使用状況を調査する

Battery Historian などのツールは、アプリのモバイル ネットワーク使用状況をより詳しく分析するために役立ちます。Battery Historian は、アプリごとにモバイル無線通信の使用を可視化します。これは、アプリで起きていることを明確に把握するのに役立ちます。Battery Historian の詳細については、Battery Historian を使用した消費電力の分析をご覧ください。アプリのモバイル ネットワーク使用状況を調査する際は、Mobile network use のラインに特に注意してください。

Battery Historian の使用方法については、Batterystats と Battery Historian のチュートリアルをご覧ください。

モバイル ネットワーク使用量を減らす

アプリのモバイル ネットワーク使用状況をフォアグラウンドに移動し、ダウンロードが進行中であることをユーザーに通知して、ダウンロードを一時停止または停止するコントロールをユーザーに提示できます。これを行うには、DownloadManager を呼び出し、必要に応じて setNotificationVisibility(int) を設定します。