2013-10-22 66 views
2

我有2個Android應用程序A和B,他們都在閱讀基於不同參數的GPS值。考慮到這兩款應用都在設備上運行,哪種下面的方法會更好?Android GPS和電池使用情況

  1. A和B都是不同的應用程序,每個應用程序都有一個組件可以從GPS讀取。

  2. 爲了開發與遠程服務分量的第三應用到GPS數據發送給A和B兩者

將電池使用通過去爲第二種方法被最小化或將讀取一次的GPS組件和服務於所有進程,如在OS中?

請幫

回答

5

有一個在Android Developers Website給出關於位置的策略很好的解釋。我建議你看看頁面上的代碼示例。

在這兩種方法中,我認爲第二種方法比較好,因爲在電池使用方面,打開/關閉GPS是相當昂貴的操作。

在初始採集衛星導航信息時,GPS的電池耗盡行爲最爲明顯。獲取每顆衛星需要12到30秒,但如果需要完整的年曆,這可能需要長達12分鐘。在此期間,您的手機無法進入深度睡眠。 A-GPS(輔助GPS)通過將導航消息通過蜂窩數據網絡甚至Wi-Fi發送到移動設備來部分解決此問題。由於這些大大矮人中的50bps的GPS衛星的帶寬,所以爲GPS天線供電或避免深度睡眠所耗費的時間大大減少。

推薦自this

+0

爲什麼?............ – AlexWien

+0

@AlexWien檢查更新的答案。 –

0

是一樣的OS GPS組件將運行一次,以滿足所有

一個GPS爲所有。 沒有一半的GPS節省一半的電力。 但還有其他位置提供商,如蜂窩塔和Wifi定位,使用的功率更低。

但是,如果您需要GPS,它絕對不會有多少應用程序使用GPS服務。 如果啓用GPS,它將使用全功率。

0

爲了兼容性和功能的緣故,我建議讓第三個程序或程序讀取並輸出GPS數據,因爲多個進程從GPS輪詢數據效率不高。

讓這兩個應用程序讀取單個GPS追蹤應用程序的輸出並且不需要每個應用程序中的單個組件都這樣做也會更快。

爲了功率的緣故,無論如何,GPS都將使用相同的功率等級,但如果由於兩個應用程序使用它而更頻繁地進行輪詢,那麼它可能會使用更多 - 儘管數量可能最小,除非恆定要求定位。

雖然這可能不是問題,但讓第三個應用程序在特定的時間間隔輪詢GPS並且應用程序可以從其輸出而不是每次搜索位置讀取應用程序將是最有效的。

2

我認爲最高效電池的方法是將輪詢與應用一通常 GPS定位,並在應用程序B,使用LocationRequests和使用setPriority()PRIORITY_NO_POWER。正如在文檔中提到的,PRIORITY_NO_POWER將使應用程序B只有在另一個應用程序獲取GPS更新時纔會獲得更新(在這種情況下,應用程序A !!)。我沒有嘗試過,但它應該工作。它肯定爲您節省了額外的應用程序的麻煩:)

Google Play定位服務herehere的其他信息。

0

第二種方法似乎更合適但不確定電池排水。這取決於您如何實施它。

此外,我建議儘量使用被動providers.Refer以下鏈接幫助它工作:)

http://fypandroid.wordpress.com/2011/04/11/298/