2012-04-08 8 views
16

私は理想的にバックグラウンドで位置情報サービスを実行する必要があるiOSアプリを開発しています。私は重要な場所をテストしましたが、それは十分正確ではありません。正確な位置は完璧ですが、これはアプリを実行可能にするために電池寿命をあまりにも長く消費します。iOSのバックグラウンド位置の削減バッテリーの使用

このバッテリの問題を回避するために、私はNSTimerUIApplication:beginBackgroundTaskWithExpirationHandler:の内部で使用する解決策を見つけたと考えました。これにより、位置がオンになった後すぐに再びオフになり、位置の更新がトリガーされ、backgroundTimeRemainingがリセットされます。

ただし、このソリューションでは、場所が9分ごとに1秒間だけオンになっている場合でも、3〜4時間ごとに15%〜20%のバッテリが消費されます。この1つのタイマー以外のバックグラウンドでは、アプリは何も実行していません。私は、何も座っていないこととバッテリーを消費していることを確認するために背景を入力するときにすべてのビューを解放しようとしました。

この待機状態では、計測器の内部を調べて、アプリケーションがCPUの0.0%とメモリ14MBを使用していることがわかりました。私は、この点については、特にGPSを540秒ごとに1秒間実行すると、24時間365日に実行するのに比べて、バッテリ消費量を大幅に削減することができないため、この点で少し迷っています。

私が問題に貢献するかもしれない、次の質問に、コンパイルし始めました、と私は誰かが答えやアイデアを持って望んでいる...

  • このよう停止中のアプリを実行してい電話は何らかの低電力モードに入っていますか?

  • GPSの起動には多大な電力が必要ですか?

  • 電源を切ってもGPSは一定期間稼働しますか?

+1

@GregularExpressions - それは正しいと思います。私はGPSハードウェアが電源投入後に最初の2秒で何かをすることができるとは思わない。受信機は、その位置を計算するためにいくつかの衛星から完全なメッセージフレームを取得しなければならず、GPS信号の帯域幅/ビットレートは非常に低い(小さい低電力受信機は不可能である)。シャットダウンするように通知されたとしても、GPSシステムはおそらくオフになる前に1つの修正を取得するまで実行されます。 –

+0

..そしてこれらの低電力GPSチップの受信機はとにかくゴミになっています。 –

+2

あなたの問題を解決しましたか? – knagode

答えて

2

はい、WWDC 2011セッション312「iOSのパフォーマンスと消費電力の最適化」では約45分でこれをカバーしています。

GPSの使用が終了すると、最大10秒間アクティブになることができ、アクティブラジオはデバイスを起動し、アクティブな間はデバイスがスリープ状態になるのを防ぎます。

「Energy Diagnostics」テンプレートを使用すると、これを見ることができます。

関連する問題