2012-03-30 3 views
68

定期的にサーバーからデータをダウンロードし、断続的にデータ(アナリティクス、広告など)をアップロードするスマートフォンアプリを構築する場合は、これらの転送によるバッテリ寿命の影響を最小限に抑えますか?スマートフォンでコンテンツをダウンロードするアプリのバッテリーへの影響を軽減する

ワイヤレス無線(2G、3G、LTEなど)を使用した転送によるバッテリの影響は特に重要です。バッテリーの寿命に与える影響を最小限に抑えるために、データをいつ、どのように、またどのように転送するかについて、自分の選択に影響を及ぼす無線ラジオの電力使用プロファイルについては何か?この回答は、Androidのトレーニングクラスから要約され

答えて

79

Transferring Data Without Draining the Battery は特に 無線に関連して、ダウンロード およびネットワーク接続のバッテリ寿命への影響を最小限にする方法を説明します。特にOptimizing Downloads for Efficient Network Access

は、いくつかの詳細に無線ステートマシンを説明し、アプリの接続モデルは、関連するバッテリの消耗を最小限に抑えること と対話する方法を説明するために、 に行きます。

無線ステートマシン

Reference

あなたはラジオがフルパワー状態に移行する新しいネットワーク接続を作成するたびに。この移行には通常約2秒かかります。そのため、レイテンシを最小限に抑えるために、無線は遅延を導入して低エネルギー状態への移行を延期します。

通常の3G無線は、転送が完了してから5秒間フルパワーになり、低エネルギー状態でさらに12秒待ってからスタンバイ状態に移行します。合計で、あなたが接続するたびに、ラジオはほぼ20秒間電力を消費します。

このアプローチは、アプリケーションがフォアグラウンド(待ち時間が重要な場合)とバックグラウンド(バッテリ寿命を優先させる場合)の両方で動作する最新のスマートフォンOS上で実行されているアプリケーションの非効率を招く可能性があります。

ソリューション

は、お使いのバッテリーにダウンロードの影響を最小限にするための鍵は、転送の頻度はダウンロードの大きさよりも劇的な影響を与えていることを認識しています。実際には、プリフェッチやキューイング/バンドルの転送は特に効果的です。

接続を開始するたびに無線が約20秒間電力を消費する可能性があることを知っているので、データ転送をバンドルして、類似した各転送セッション中にできるだけ多くのデータを転送して、セッション数を最小限に抑えるようにします。

同様に、プリフェッチを使用すると、単一のバースト内で、必要な可能性があるすべてのデータを、1回の接続で最大容量でダウンロードできます。転送をフロントローディングすることで、データのダウンロードに必要な無線アクティベーションの回数を減らし、バッテリ寿命を延ばし、レイテンシを改善し、帯域幅を削減し、ダウンロード時間を短縮します。

しかし、プリフェッチも使用されていないデータをダウンロードすることにより、電池の消耗や帯域幅の利用を増加させる危険性を紹介します。もしプリフェッチがダウンロードされると、それの可能性が使用されているデータのサイズによって異なりますどのように積極的に

。一般に、データをプリフェッチして、2〜5分ごとに1〜5メガバイトのオーダーで別のダウンロードを開始するだけで済むようにすることをお勧めします。

それはかなり新しいものを作成するよりも、既存のネットワーク接続を再利用することも一般的に、より効率的です。また、接続を再利用することで、ネットワークは輻輳や関連するネットワークデータの問題に、よりインテリジェントに対応することができます。

11

「同期する頻度」の設定をアプリの設定に追加することをお勧めします。のユーザーには、データの鮮度とバッテリーの使用状況のバランスを取る方法があります。異なるユーザーには異なる優先順位があります。

関連する問題