较少轮询位置更新对电池的影响?
Battery impact of polling for location updates less often?
我已经阅读了很多关于此的相互矛盾的信息。
假设我在 PRIORITY_HIGH_ACCURACY
模式下使用 Fused Location API,如果我将间隔设置为 10 分钟与 1 分钟会有很大区别吗? 1 小时 vs 10 秒?如果是这样,有多彻底?
我不知道它在内部是如何工作的,所以我只是想知道如果我需要高精度定位(轮询的相对频率低不是问题),我可以做些什么来节省电池。
https://developer.android.com/training/monitoring-device-state/index.html
开发人员网站提供了有关如何节省电池电量的建议,但他们似乎没有提供任何具体信息来说明轮询频率究竟对电池寿命有多大影响。
启用该服务是否会一直保持 GPS 开启并因此始终使用电池(因此间隔将是合成的并且仅出于编程原因)?
谢谢!
对于 Fused Location API,我不确定他们是否会关闭 GPS 或调整报告间隔,但我认为他们会在更新之间关闭 GPS,否则许多其他人会抱怨关于功耗。
至于 Android 定位服务的作用,如果间隔大于 0,它们会关闭 GPS 并允许 phone 在更新之间空闲(查看 [=10 中的源代码) =]).我在不同的 android phone 上做了相当多的功率测试,发现让 CPU 不空转可以消耗大量功率。加上 GPS 的耗电量(它可以防止 CPU 闲置),您看到的是不错的耗电量(大约是某些设备屏幕耗电量的 50%)。
最后,我不得不同意 Gabe Sechan 的观点,并建议您选择准确性是否值得电池耗尽。只需问自己这些基本问题:
我需要知道我的用户是在街道的一侧还是另一侧吗?
如果是,使用 GPS,否则使用网络或低精度定位。
我需要多久检查一次用户的位置?
如果您大约每分钟需要一次,请将间隔设置为这样。如果您只关心他们何时离开一般区域,请设置地理围栏或使用网络位置。您还可以收听来自其他应用的位置更新,并让您的应用更智能地了解何时进行更新。
如果我无法在 X 时间内获取用户的位置,我可以完全跳过此更新吗?
如果可以,请在更新逻辑中添加超时功能。如果不是,我强烈建议您在这种情况下重新评估应用程序逻辑。
我已经阅读了很多关于此的相互矛盾的信息。
假设我在 PRIORITY_HIGH_ACCURACY
模式下使用 Fused Location API,如果我将间隔设置为 10 分钟与 1 分钟会有很大区别吗? 1 小时 vs 10 秒?如果是这样,有多彻底?
我不知道它在内部是如何工作的,所以我只是想知道如果我需要高精度定位(轮询的相对频率低不是问题),我可以做些什么来节省电池。
https://developer.android.com/training/monitoring-device-state/index.html
开发人员网站提供了有关如何节省电池电量的建议,但他们似乎没有提供任何具体信息来说明轮询频率究竟对电池寿命有多大影响。
启用该服务是否会一直保持 GPS 开启并因此始终使用电池(因此间隔将是合成的并且仅出于编程原因)?
谢谢!
对于 Fused Location API,我不确定他们是否会关闭 GPS 或调整报告间隔,但我认为他们会在更新之间关闭 GPS,否则许多其他人会抱怨关于功耗。
至于 Android 定位服务的作用,如果间隔大于 0,它们会关闭 GPS 并允许 phone 在更新之间空闲(查看 [=10 中的源代码) =]).我在不同的 android phone 上做了相当多的功率测试,发现让 CPU 不空转可以消耗大量功率。加上 GPS 的耗电量(它可以防止 CPU 闲置),您看到的是不错的耗电量(大约是某些设备屏幕耗电量的 50%)。
最后,我不得不同意 Gabe Sechan 的观点,并建议您选择准确性是否值得电池耗尽。只需问自己这些基本问题:
我需要知道我的用户是在街道的一侧还是另一侧吗?
如果是,使用 GPS,否则使用网络或低精度定位。
我需要多久检查一次用户的位置?
如果您大约每分钟需要一次,请将间隔设置为这样。如果您只关心他们何时离开一般区域,请设置地理围栏或使用网络位置。您还可以收听来自其他应用的位置更新,并让您的应用更智能地了解何时进行更新。
如果我无法在 X 时间内获取用户的位置,我可以完全跳过此更新吗?
如果可以,请在更新逻辑中添加超时功能。如果不是,我强烈建议您在这种情况下重新评估应用程序逻辑。