Android GPS和电池使用情况

时间:2013-10-22 17:18:47

标签: android gps battery-saver

我有2个Android应用程序A和B,它们都是根据不同的参数读取gps值。考虑到这两个应用程序都在设备上运行,以下哪种方法会更好?

  1. A和B都是不同的应用程序,每个应用程序都有一个可从GPS读取的组件。

  2. 开发带有远程服务组件的第三个应用程序,以便将GPS数据传输到A和B

  3. 通过采用第二种方法将电池使用量降至最低,或者GPS组件是否会读取一次并为所有进程提供服务,如在操作系统中那样?

    请帮忙

5 个答案:

答案 0 :(得分:5)

关于位置策略的Android Developers Website给出了非常好的解释。我建议你看一下页面上的代码示例。

在你的两种方法中,我认为第二种方法更好,因为在电池使用方面打开/关闭GPS是一项非常昂贵的操作。

  

在初始采集卫星导航信息时,GPS的电池耗尽行为最为明显。获取每颗卫星需要12至30秒,但如果需要完整年历,则最多可能需要12分钟。在所有这些过程中,您的手机无法进入深度睡眠状态。 A-GPS(辅助GPS)通过蜂窝数据网络甚至Wi-Fi向您的移动设备发送导航消息,从而部分解决了这个问题。由于其中任何一个的带宽大大缩短了50个GPS卫星,因此大大减少了为GPS天线供电或避免深度睡眠所花费的时间。

来自this

答案 1 :(得分:2)

我认为最节省电池的方法是使用应用A 正常轮询GPS位置,在应用B中,使用LocationRequests并使用setPriority()和{ {3}}。正如文档中所提到的,PRIORITY_NO_POWER只有在其他应用获得GPS更新时才会使应用B获得更新(在本例中为应用A !!)。我没有尝试过,但它应该工作。它绝对可以为您节省额外应用的麻烦:)

有关Google Play定位服务PRIORITY_NO_POWERhere的更多信息。

答案 2 :(得分:0)

  

与OS gPS组件运行一次以提供所有

相同

一台GPS全部服务。 没有一半GPS节省一半的功率。 但是还有其他的位置提供商,如手机信号塔和Wifi定位,使用的功率更低。

但是,如果你需要GPS,绝对没有差异有多少应用程序使用GPS服务。 如果GPS已启用,则使用全功率。

答案 3 :(得分:0)

为了兼容性和功能,我建议使用第三个过程或程序来读取和输出GPS数据,因为从GPS轮询数据的多个过程效率较低。

让这两个应用程序读取单个GPS跟踪应用程序的输出并且不需要每个应用程序中的单个组件也可以更快。

为了供电,GPS将使用相同水平的功率,但如果由于两个应用程序使用它而更频繁地轮询,那么它可能会使用更多 - 尽管除非有持续的请求,否则数量可能会很小对于位置。

虽然这可能不是一个问题,但是让第三个应用程序以特定间隔轮询GPS并且应用程序可能每次都从其输出而不是搜索位置读取数据时效率最高。

答案 4 :(得分:0)

第二种方法似乎更合适但不确定电池排水。这取决于你如何实施它。

另外我建议尝试使用被动提供程序。请参阅以下链接帮助它工作:)

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