現在、最新の iOS4 機能をテストして、位置認識アプリをバックグラウンドに配置しています。まあ、それはうまくいきます!しかし一方で、莫大な電力使用量を処理するのは非常に困難です。
このアプリは、過去 4 時間で約 50% のバッテリー電力を消費しました。このトピックに関するAppleの公式ドキュメント全体を読みましたが、アプリケーションのどの部分がまだ実行されていて、どの機能が中断されているのかまだわかりません(明確なはずのUI Drawing以外)。
実際のボイラープレート コードは使用しませんが、ASIHTTPRequestなどの拡張ライブラリを使用して Web サービスと通信します。友人の車でテストしたところ、ネットワーク接続と位置情報サービスは、私が ie を使用しているときにまだ実行されていることが示されましたか?
[locationManager startMonitoringSignificantLocationChanges];
さまざまなアプリケーションの状態に関する Apples のドキュメント
バックグラウンド: アプリケーションはバックグラウンドでコードを実行しています [...]
この位置データを送受信する「ベア メタル」関数を作成する必要がありますか? アプリケーションがバックグラウンドに存在する間、他のすべてのオブジェクトを削除してメモリ フットプリントを削減する必要がありますか? ベストプラクティスはまだないようです。
何か案は?たぶん、あなたたちはあなたの洞察のいくつかを私に提供することができます. ありがとう。
編集: Energy Diagnostics Instruments と呼ばれる新しい Instruments ツールがあり、接続されたデバイスの電力使用量 (iPhone 3GS 以降の場合) を記録します。また、デバイスの設定アプリ -> 開発者 -> 電力使用量には別のサービスがあります。現場で電力使用量をテストするのは素晴らしいことです。作成されたログは、後でインストゥルメントでプルできます。
参照: WWDC 2010 セッション 309 - 計測器を使用した高度なパフォーマンス分析