6

現在、最新の iOS4 機能をテストして、位置認識アプリをバックグラウンドに配置しています。まあ、それはうまくいきます!しかし一方で、莫大な電力使用量を処理するのは非常に困難です。

このアプリは、過去 4 時間で約 50% のバッテリー電力を消費しました。このトピックに関するAppleの公式ドキュメント全体を読みましたが、アプリケーションのどの部分がまだ実行されていて、どの機能が中断されているのかまだわかりません(明確なはずのUI Drawing以外)。

実際のボイラープレート コードは使用しませんが、ASIHTTPRequestなどの拡張ライブラリを使用して Web サービスと通信します。友人の車でテストしたところ、ネットワーク接続と位置情報サービスは、私が ie を使用しているときにまだ実行されていることが示されましたか?

[locationManager startMonitoringSignificantLocationChanges];

さまざまなアプリケーションの状態に関する Apples のドキュメント

バックグラウンド: アプリケーションはバックグラウンドでコードを実行しています [...]

この位置データを送受信する「ベア メタル」関数を作成する必要がありますか? アプリケーションがバックグラウンドに存在する間、他のすべてのオブジェクトを削除してメモリ フットプリントを削減する必要がありますか? ベストプラクティスはまだないようです。

何か案は?たぶん、あなたたちはあなたの洞察のいくつかを私に提供することができます. ありがとう。

編集: Energy Diagnostics Instruments と呼ばれる新しい Instruments ツールがあり、接続されたデバイスの電力使用量 (iPhone 3GS 以降の場合) を記録します。また、デバイスの設定アプリ -> 開発者 -> 電力使用量には別のサービスがあります。現場で電力使用量をテストするのは素晴らしいことです。作成されたログは、後でインストゥルメントでプルできます。

参照: WWDC 2010 セッション 309 - 計測器を使用した高度なパフォーマンス分析

4

1 に答える 1

4

アプリがセルラー ネットワーク経由で位置データを送信しているようです。セルラー無線をオンにすることは、特にユーザーがセル タワーへの信号接続が弱い場合に、電力消費の最も急速な原因の 1 つです。

大量の位置データを保存してパッケージ化し、できるだけ頻繁にデータを送信しないようにします (1 日 2 回、ユーザーが 30 分間移動を停止したとき、ユーザーがお気に入りの場所に到達した後でのみ)。レストランなど) ラジオをオンにする頻度を半分以下にすると、バッテリー寿命が 2 倍に近くなる可能性があります (ユーザーがデバイスで何か他のことをしている場合を除きます)。

于 2010-08-28T04:15:50.540 に答える