何十億人ものユーザーに受け入れられるバッテリー消費量

信頼できる電源を常に使用できるとは限らず、また停電によって予定どおりに充電できない場合もあります。ユーザーのバッテリーが無駄に消費されないようにするには、バッテリーの使用についてベンチマーク テストを行い、WakeLock を避け、タスクをスケジュールし、センサーのリクエストを監視します。

バッテリー消費量を削減する

アプリが必要なときのみバッテリーを消費していることや、必要以上の電力を消費していないことは、いくつかの手順で確認できます。

  • アプリがバックグラウンドで実行中で、端末がバッテリー電源で動作しているときは、アプリのアクティビティを最小限にしなければなりません。
  • GPS センサーなどのセンサーはバッテリーをかなり消耗することがあります。問題を回避するため、FusedLocationProvider API を使用して基礎的な位置情報テクノロジーを管理してください。これは高精度や省電力などの要件を高度に指定できるシンプルな API です。また、位置情報をキャッシュして、複数のアプリのリクエストを一括で処理することで、端末のバッテリー使用を最適化します。位置情報をリクエストする理想的な方法については、最新の位置情報の取得に関するトレーニング ガイドで詳細をご覧ください。
  • WakeLock は、端末がバックグラウンドのアクティビティを実行できるよう、スリープ状態に入らないようにするためのメカニズムです。これにより端末が省電力状態に移行できなくなるので、WakeLock の使用は避けてください。
  • 端末がスリープから復帰する回数を減らすには、ネットワーク アクティビティを一括で処理します。一括処理の詳細については、ダウンロードを最適化してネットワーク アクセスを効率化する方法に関する Android トレーニングをご覧ください。
  • GcmNetworkManager は、タスクをスケジュールし、Google Play サービスでシステムの操作を一括で処理できるようにします。これにより、ネットワーク接続の待機、端末の充電状態、再試行、バックオフなど、一般的なパターンの実装が大幅に簡略化されます。GcmNetworkManager を使用すると、端末が充電中で、従量制ではないネットワークに接続されているときに、重要性の低いバックグラウンド アクティビティを実行できます。
  • ネットワーク アクティビティとバッテリーの消費についての詳細と対応方法については、ネットワークによるバッテリー消費の防止をご覧ください。

バッテリー使用のベンチマーク

制御された環境でアプリのバッテリー使用についてベンチマーク テストを行うと、アプリ内でバッテリーを大量に消費するタスクを特定できます。アプリのバッテリー使用のベンチマークは、バッテリーの使用効率を測定し、時間に伴う変化を追跡するための優れた方法です。 Batterystats は、アプリに関するバッテリーのデータを収集し、 Battery Historian はそのデータを見やすい HTML に変換します。

バッテリー使用の削減については、バッテリー寿命を最適化する方法に関する Android トレーニングで詳細をご覧ください。