使用加速度计和陀螺仪时的系统性能和电池使用情况

System performance and battery use when using the accelerometer and gyroscope

我正在从事一个结合使用加速度计和陀螺仪的项目。

在我正在开发的特定应用程序中,我在需要时打开(例如 .startGyroUpdatesToQueue)加速度计和陀螺仪,在不需要时关闭(例如 .stopGyroUpdates()),类似于 Apple 的文档建议.

但是,我注意到在将加速度计和陀螺仪重新打开时可能会有轻微的延迟,用户时不时会注意到这一点。所以首选是保持加速度计和陀螺仪始终开启,以便用户获得不间断的体验。

问题:

1 - 当在应用程序中启用加速度计和陀螺仪时,它们对系统性能和电池使用的效率如何?

2 - 加速度计和陀螺仪开启时,系统性能和电池使用情况是否evidence/data?

3 - 有没有办法暂停加速度计和陀螺仪而不是完全关闭它们?

在现代 iPhone(5S 及更高版本)上先回答数字 3 the accelerometer is never really turned off and resides in a special motion coprocessor。在这些设备上,创建数据的能源成本是恒定的,但获取数据的能源成本是昂贵的。它需要一个计时器来定期唤醒主处理器、读取数据、唤醒您的应用程序并在您的线程之一上执行事件。最接近您要求的是一种打开计时器但不将其输入您的应用程序的方法。似乎没有办法做到这一点,如果有的话,节能效果可能不会那么好。

考虑到这一点,1 将是相当主观的。处理器和您的应用程序都将花费更多时间 运行,但如果您已经在 CPU 上工作,它会增加那么多吗?同样,如果用户只将 5% 的时间花在不需要加速计的屏幕上,而不是 50% 的时间,那么持续打开加速计对整体能源的影响将会小得多。这真的把我们带到了问题的核心,第 2 个。

如果您想了解不断轮询加速度计与仅在需要时打开加速度计相关的能源成本,您应该分析您的应用程序。调试您的应用程序时,您可以使用调试导航器 ( 直接在 Xcode 中查看应用程序的 CPU、能量和其他影响6).这在 Apple 的 Energy Efficiency Guide of iOS Apps: Measure Energy Impact with Xcode. You can also get a more detailed analysis with Instruments. Apple provides full details in their Energy Efficiency Guide of iOS Apps: Measure Energy Impact with Instruments.

中有解释

使用上述工具,您应该能够了解保持加速度计始终开启需要多少能量,并能够就该做什么做出合理的决定。