信頼できる電源をいつでも使用できるとは限りません。停電によって予定どおりに充電できない場合もあります。ユーザーのバッテリーが無駄に消費されないようにするには、バッテリー使用量についてベンチマーク テストを行い、ウェイクロックの回避、タスクのスケジュール、センサー リクエストのモニタリングをします。
バッテリー消費量の低減
必要な場合にのみアプリがバッテリーを使い、必要以上に電力を消費しないようにするには次のような方法があります。
- アプリがバックグラウンドで実行中で、デバイスがバッテリー電源で動作しているときは、アプリのアクティビティを最小限にする必要があります。
- GPS センサーなどのセンサーは、バッテリーを大幅に消耗することがあります。問題を回避するため、
FusedLocationProvider
API を使用して、元となる位置情報テクノロジーを管理します。高精度や低電力といった大枠の要件を指定できるシンプルな API を提供します。また、位置情報をキャッシュして、アプリ間でリクエストを一括処理することで、デバイスのバッテリー使用を最適化します。位置情報をリクエストする理想的な方法については、直近の位置情報の取得のトレーニング ガイドをご覧ください。 - wake lock は、デバイスがバックグラウンド アクティビティを実行できるよう、スリープ状態に入らないようにするためのメカニズムです。デバイスが省電力状態に移行できなくなるので、wake lock は使用しないでください。
- デバイスの復帰の回数を減らすには、ネットワーク アクティビティを一括で処理します。一括処理の詳細については、ダウンロードを最適化してネットワーク アクセスを効率化する方法に関する Android トレーニングをご覧ください。
- WorkManager は、タスクをスケジュール設定し、システムが一括処理を実行できるようにします。これにより、ネットワーク接続の待機、デバイスの充電状態、再試行、バックオフなどの一般的なパターンの実装が大幅に簡素化されます。デバイスが充電中で定額制ネットワークに接続されている場合、WorkManager を使用して必須ではないバックグラウンド アクティビティを実行します。
- ネットワーク アクティビティとバッテリーの消費についての詳細と対応方法については、ネットワークに起因するバッテリー消費を削減するをご覧ください。
バッテリー使用量のベンチマーク
制御された環境でアプリのバッテリー消費量のベンチマーク テストを行うと、アプリ内でバッテリーを大量に消費するタスクを確認できます。アプリのバッテリー消費量のベンチマーク テストは、バッテリーの使用効率を測定し、時間に伴う変化を追跡するためのものです。 Batterystats がアプリに関するバッテリー データを収集し、 Battery Historian がそのデータを HTML 表示に変換します。
バッテリー使用量の低減について詳しくは、バッテリー寿命の最適化に関する Android トレーニングをご覧ください。
関連情報

Case study
Mir 2 で Frame Pacing ライブラリを使用してレンダリング パフォーマンスを改善
Mir 2: Return of the King は、Actoz Soft がライセンスを付与し、 HK ZHILI YAOAN LIMITED が Unity ゲームエンジンを使用して開発した、高品質の Legend IP モバイルゲームです。 このゲームは、韓国のファンタジー MMORPG を代表する Mir 2 の雰囲気を完璧に再現するだけでなく、装備の収集、大規模な砂攻撃、その他のコア ゲームプレイなど、最も人気のあるゲーム コンテンツも数多く提供しています。

Case study
Kuro Games が Android Studio Power Profiler と ODPM を使用して Wuthering Waves の消費電力を 9.68% 削減
Wuthering Waves は、Kuro Games が開発した高品質のアクション RPG ゲームです。長時間のゲーム セッションでプレミアムなユーザー エクスペリエンスを持続的に提供するには、消費電力を最適化することが非常に重要です。 Android Studio では、Hedgehog(2023.1.1)から Power Profiler が導入されました。これは、デベロッパーが On Device Power Rails

Case study
Android 向け Godot Engine Vulkan の最適化
Godot Engine は、Android を堅牢にサポートする人気の高いマルチプラットフォームのオープンソース ゲームエンジンです。Godot は、ほぼすべてのジャンルのゲームの作成に使用でき、2D グラフィックと 3D グラフィックの両方に対応しています。Godot バージョン 4 では、高忠実度グラフィック向けの高度な機能を備えた新しいレンダリング システムが導入されました。Godot 4 レンダラは、Vulkan などの最新のグラフィック API 向けに設計されています。 Godot

Case study
Unreal Engine での Android Dynamic Performance Framework(ADPF)のスタートガイド
Android Dynamic Performance Framework(ADPF)は、アプリケーションのパフォーマンスを最適化したいデベロッパー向けの Google の強力なツールです。ADPF は、サーマル API を介してデバイスの熱状態に関するリアルタイム情報を提供します。この情報は、アプリのグラフィック設定の調整に使用されます。 研究目的で、Arm は Unreal Engine と ADPF を使用してデモを開発し、ADPF

Case study
NCSoft の Lineage W が ADPF を使用して持続的なパフォーマンスを向上させ、サーマル スロットリングを回避
NCSoft Lineage W は、NCSoft が開発した大規模多人数同時参加型オンライン ロールプレイング ゲーム(MMORPG)です。このゲームは、元の Lineage W ゲームの遺産を受け継いでおり、世界中のプレーヤーがグローバル サーバーを通じて協力して競い合うことができる環境を提供します。独自の中世ファンタジーの世界を舞台とする Lineage W は、さまざまなクラス、スキル、戦闘システムを通じて、プレイヤーに深いゲーム体験を提供します。 NCSoft は Android

Case study
MediaTek が Android SoC の動的パフォーマンスを強化
パフォーマンスと温度管理の改善は、Android で成功するゲームを開発するために不可欠です。従来、デベロッパーはゲームの忠実度を下げるかレンダラをさらに最適化することで、こうした問題に対処する必要がありました。こうした変更はゲームに固有の傾向があり、多くの場合、柔軟性に欠けます。 Android エコシステムには、アダプティブ パフォーマンス API がデベロッパーに提供されています。アダプティブ パフォーマンス機能の統合を簡素化し、エコシステムの断片化を減らすために、Google と