我在我的Android应用程序中使用加速度计和陀螺仪。我想分析一下我的应用程序的耗电量。假设这个应用程序,每100毫秒读取这两个传感器,添加所有的三个轴(x,y,z),并将它们存储在一个文件中。
现在我不确定这两个传感器是否总是开着的?如果是的话,那么大部分的耗电量将来自我在应用程序中如何使用或处理这些传感器的值。所以我有以下问题。
这些问题背后的背景或推理:陀螺仪比加速度计消耗更多的功率(根据我的分析,它的功率是加速度计的4-6倍)。现在,如果这些传感器总是开着的话,那么我可以在我的应用程序中使用它们,因为我的应用程序并不是这些传感器的工作状态导致的耗电量的原因。我的应用程序将负责功耗,因为我使用这些传感器值的方式,以及我阅读它们的频率。不过,如果是禁用或关机(根本不耗电),我便要小心决定是否要使用,因为在登记时,除了处理它们的值外,我亦会因它们的有效状态而增加耗电量。
发布于 2016-10-12 13:58:26
除了的回答外,还有一些更多的链接:
所以,是的,你可以假设这两个传感器总是在上。
你可以暗示注册/注销对能量的影响很小,只要你不保留一个锁。
但是,一般来说,不应该认为注册/注销传感器用于功率优化是无用的--除了一击传感器。这不仅仅是因为用于处理事件并将事件传递给应用程序的能力,以及不让系统休眠的可能性。它是一个框架建议,这些通常都不是没有原因的,比如使用使用报告延迟注册,以便在可能的情况下使用批处理。影响可能会随着不同的硬件或其他因素而改变。
如果假设数据是根据Wakelock提供的,那么它也可能是一个有趣的bug源:文档只说明对于无唤醒传感器,驱动程序不允许持有Wakelock,传感器不应该唤醒SoC。这意味着你的应用程序可以在后台处理事件,也可以不根据设备、系统、安装的应用等进行处理。
发布于 2016-10-12 10:38:33
官方网站:“一定要禁用你不需要的传感器,特别是当你的活动暂停时。如果不这样做,可能会在几个小时内耗尽电池。请注意,当屏幕关闭时,系统不会自动关闭传感器。”
“这两个传感器总是开着还是在工作?”--似乎这个问题没有一般的答案,因为它取决于硬件。事实上,加速度计和陀螺仪具有较低的功耗,但它们支持的操作系统可能消耗更多的电池。
“那么寄存器和注销注册会做什么呢?”--从它们那里消除了数据处理的功耗。
发布于 2017-04-27 05:58:27
加速度计和陀螺仪并不总是开着的。这将是疯狂的--任何在移动设备中吸引电力的东西都会在任何可能的情况下进入低功耗模式(目前没有一个应用程序正在请求它)。因此,需要进行登记/注销登记。
没有一个严格的规范要求硬件制造商这样做,因为这是一个提高电池寿命的常识优化。
https://stackoverflow.com/questions/39996315
复制相似问题