Google Fit应用程序如何在不耗尽电量的情况下始终测量步数?

时间:2014-11-22 14:13:33

标签: android gps accelerometer android-sensors google-fit

Google Fit应用安装后,会测量您走路或跑步的持续时间,以及所有时间的步数。然而,奇怪的是,使用它似乎并没有耗尽电池。像Moves这样的其他应用程序似乎可以非常准确地记录步数,因为它会持续监控GPS和加速度计,因此会耗费大量功率。

我想到了几种可能性:

  • 每分钟左右唤醒手机,然后分析传感器几秒钟,然后再次睡觉。然而,似乎记录非常准确,因此必须经常醒来。
  • 实际上一直打开加速度计,仅在加速度计测量数据缓冲区已满后进行分析。但是我认为加速度计有一个小缓冲区来存储最新的测量值。
  • 使用GPS 估算步数而不是实际计算步数。但事实并非如此,因为它甚至可以在室内使用。

该应用仍然感觉神奇。一直计算步数而没有可察觉的电池消耗。

7 个答案:

答案 0 :(得分:84)

感谢您提出这个问题!

电池是我们最关注的问题之一,我们努力优化Google Fit的电池使用情况,并提供神奇的体验。 Google Fit使用混合传感器(加速度计,步数计数器,重要运动计数器),机器学习和启发式算法来正确获取数据。我们的算法非常类似于您的第一个选项加上一点魔力。

我们定期轮询加速度计并使用机器学习和启发式方法来正确识别活动和持续时间。 对于具有硬件步进计数器的设备,我们使用这些步骤计数器来监控步数。对于旧设备,我们使用检测到的活动来预测正确的步数。 我们的算法将这些活动,步骤和有时位置合并以关联并进一步提高准确性。

我们不会轮询GPS以估算步数或检测活动。

- Google Fit Team的工程师。

答案 1 :(得分:11)

在一些最近的手机上,比如Nexus 5(2013年底发布的Android 4.4 KitKat),有一个专用的低功耗CPU核心,可作为计步器使用。由于该核心消耗的功率非常小,并且可以自行计算步数而无需整个CPU或GPS,因此大大减少了整体电池使用量。在最近的iPhone上,有一个类似的微控制器叫做iPhone 5s中的M7协处理器和iPhone 6中的M8。

此处提供更多信息:

https://developer.android.com/about/versions/kitkat.html

http://nexus5.wonderhowto.com/how-to/your-nexus-5-has-real-pedometer-built-in-heres-you-use-0151267/

http://www.androidbeat.com/2014/01/pedometer-nexus5-hardware-count-steps-walked/

答案 2 :(得分:5)

拥有3年历史的HTC OneX我可以说没有专用的硬件,Google Fit只是以非常聪明的方式使用标准传感器。我来自Runtastic计步器:在使用时有明显的电池消耗,因为它需要全加速度计功率,所以不可能一直保持电量。另一方面,如果你静止不动并摇动手机,Runtastic将会震动,而谷歌适合显然什么都不做..当你真正走路或跑步时,它仍能正常工作。魔法。

答案 3 :(得分:2)

谷歌适合尝试学习使用pedo步骤模式并尝试创建自己的个人步行模式及其群集。这消除了每次接收传感器数据时需要进行大量数学计算的需要。与其他软件pedo应用相比,这使得Google更加节能。话虽如此,这里有准确性因素的妥协。在功率准确性权衡之间,谷歌似乎更加符合功率因数。

此时最节能的检测发生在三星旗舰产品上。其他高端型号。感谢三星的专用硬件芯片!无论您的软件pedo算法如何高效,但其难以击败专用硬件单元的优势。我还听说谷歌为Ped即将推出的nexus设备带来专用硬件单元。

答案 4 :(得分:1)

似乎解决方案将取决于设备,其中设备可以使用协同运动处理器或“wimpier”核心用于低功耗操作,一旦缓冲区满或类似条件,它将默认为此。对于没有低功耗核心的设备,似乎唤醒设备可能会触发JIT操作,该操作将在应用程序被调用时完成。

答案 5 :(得分:1)

虽然Nexus 5确实拥有专用的低功耗"计步器内置。它不是"低功率"你可能会想。

当我打开Goog​​le Fit活动检测功能时,我的Nexus 5电池续航时间减少了约25%。

此外,计步器并未显示电池使用情况统计数据。据推测,因为它是一件硬件事。

答案 6 :(得分:1)

我不知道那里的其他手机,但Google Fit确实在我的Nexus 5上耗尽了电池寿命。禁用它肯定会延长我的电池续航时间。