轮询位置更新频率降低对电池的影响?
Posted
技术标签:
【中文标题】轮询位置更新频率降低对电池的影响?【英文标题】:Battery impact of polling for location updates less often? 【发布时间】:2017-07-17 06:25:25 【问题描述】:我已经阅读了很多关于此的相互矛盾的信息。
假设我在PRIORITY_HIGH_ACCURACY
模式下使用 Fused Location API,如果我将时间间隔设置为 10 分钟和 1 分钟,会有很大的不同吗? 1小时对10秒?如果是这样,程度如何?
我不知道它在内部是如何工作的,所以我只是想知道如果我需要高精度定位(并且轮询相对不频繁不是问题),我可以做些什么来节省电池。
https://developer.android.com/training/monitoring-device-state/index.html
开发者网站有关于如何节省电池的建议,但他们似乎没有提供任何具体信息来说明轮询频率对电池寿命的影响。
启用该服务是否始终保持 GPS 开启,因此始终使用电池(因此间隔是合成的,仅出于编程原因)?
谢谢!
【问题讨论】:
启用 GPS 至少在很短的轮询时间内始终保持打开状态。我把它放在大约 15 分钟或 1 小时它可能会关闭它。一般来说,GPS 的电池消耗并没有那么糟糕——保持屏幕打开几分钟比整天运行 GPS 需要更多的电池。我更担心的是准确性权衡和有用的位置(例如 GPS 在大多数建筑物内失败),而不是电池使用情况。 @GabeSechan,这种模糊的常识/建议并未涵盖某人可能面临的所有情况。 “我会....”在 您的 特定情况下可能是正确的,但不是其他所有人。就我而言,我检查了几天,gpsd 大约需要 30%(每天),而 screen 需要 10%。但同样,这只是 my 的情况。顺便提一句。这是有趣的阅读quora.com/Battery-Life/… 搜索“罗伯特·洛夫”。 @greenoldman 涵盖每个案例需要一本小书,所以是的,当然,快速评论并不能涵盖所有内容。我建议你重做你的数字——你不可能整天都有屏幕,只消耗 10% 的电量。我在 25% 的亮度下在一小时内得到了它。在我用过的任何设备上,您都夸大了 GPS 消耗而低估了屏幕消耗。 @GabeSechan,我不需要重做任何事情,我只需检查电池统计数据,这些就是数字(一次又一次)。我提到了您的说法“保持屏幕打开几分钟比整天运行 GPS 需要更多的电池”这是我的情况,但数字表明这种说法是不正确的。当然,屏幕打开一整天需要更多时间,但这不是你原来的说法。 @greenoldman 然后我建议你买一个新设备,你的设备有很大问题。我已经在多个设备上反复进行了这个测试。 GPS 是一种消耗,但与屏幕等其他东西相去甚远。 【参考方案1】:对于 Fused Location API,我不确定他们是否关闭 GPS 或在保持开启状态时调整报告间隔,但我认为他们会在更新之间关闭 GPS,否则许多其他人会抱怨耗电。
至于 Android 定位服务的作用,如果间隔大于 0,它们会关闭 GPS 并允许手机在两次更新之间闲置(查看LocationManagerService 中的源代码)。我在不同的安卓手机上做了相当多的电源测试,发现保持 CPU 不空闲可以消耗大量的电量。加上 GPS 的功耗(防止 CPU 闲置),您会看到相当不错的功耗(大约是某些设备的屏幕功耗的 50%)。
最后,我不得不同意 Gabe Sechan 的观点,并建议您选择准确度是否值得消耗电池电量。只需问自己这些基本问题:
我需要知道我的用户是在街道的一侧还是另一侧?
如果是,请使用 GPS,否则使用网络或低精度位置。
我需要多久检查一次用户的位置?
如果您大约每分钟需要一次,请设置您的间隔。如果您只关心他们何时离开一般区域,请设置地理围栏或使用网络位置。您还可以收听来自其他应用的位置更新,并使您的应用更智能地了解何时进行更新。
如果我无法在 X 时间内获取用户的位置,我可以完全跳过此更新吗?
如果可以,请在更新逻辑中添加超时功能。如果没有,我强烈建议您在这种情况下重新评估应用逻辑。
【讨论】:
以上是关于轮询位置更新频率降低对电池的影响?的主要内容,如果未能解决你的问题,请参考以下文章