首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android手机的加速度计和陀螺仪及其功耗

Android手机的加速度计和陀螺仪及其功耗
EN

Stack Overflow用户
提问于 2016-10-12 10:27:58
回答 3查看 5.6K关注 0票数 4

我在我的Android应用程序中使用加速度计和陀螺仪。我想分析一下我的应用程序的耗电量。假设这个应用程序,每100毫秒读取这两个传感器,添加所有的三个轴(x,y,z),并将它们存储在一个文件中。

现在我不确定这两个传感器是否总是开着的?如果是的话,那么大部分的耗电量将来自我在应用程序中如何使用或处理这些传感器的值。所以我有以下问题。

  1. 这两个感应器总是开着还是在动?(如有的话,任何提述)。
  2. 那么注册和注销注册是做什么的呢?如果他们总是开着, 那么,取消它们的注册将不会产生任何影响,至少在耗电量方面是如此。

这些问题背后的背景或推理:陀螺仪比加速度计消耗更多的功率(根据我的分析,它的功率是加速度计的4-6倍)。现在,如果这些传感器总是开着的话,那么我可以在我的应用程序中使用它们,因为我的应用程序并不是这些传感器的工作状态导致的耗电量的原因。我的应用程序将负责功耗,因为我使用这些传感器值的方式,以及我阅读它们的频率。不过,如果是禁用或关机(根本不耗电),我便要小心决定是否要使用,因为在登记时,除了处理它们的值外,我亦会因它们的有效状态而增加耗电量。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-10-12 13:58:26

除了的回答外,还有一些更多的链接:

  1. 这是广泛和“制造商独立”记录在传感器科的Android体系结构文档中。具体来说,加速度计和陀螺仪是作为不醒传感器处理的,这些传感器不断地报告事件,但可能不会唤醒SoC。

所以,是的,你可以假设这两个传感器总是在上。

  1. 此外,文档还指出:如果应用程序需要后台的数据,它需要保存一个Wakelock --可能是局部 Wakelock,它将防止系统进入低功耗/休眠模式--这样就可以处理和传递事件,而不会被丢弃。很明显,这会更快地耗尽电池。

你可以暗示注册/注销对能量的影响很小,只要你不保留一个锁。

但是,一般来说,不应该认为注册/注销传感器用于功率优化是无用的--除了一击传感器。这不仅仅是因为用于处理事件并将事件传递给应用程序的能力,以及不让系统休眠的可能性。它是一个框架建议,这些通常都不是没有原因的,比如使用使用报告延迟注册,以便在可能的情况下使用批处理。影响可能会随着不同的硬件或其他因素而改变。

如果假设数据是根据Wakelock提供的,那么它也可能是一个有趣的bug源:文档只说明对于无唤醒传感器,驱动程序不允许持有Wakelock,传感器不应该唤醒SoC。这意味着你的应用程序可以在后台处理事件,也可以不根据设备、系统、安装的应用等进行处理。

票数 2
EN

Stack Overflow用户

发布于 2016-10-12 10:38:33

官方网站:“一定要禁用你不需要的传感器,特别是当你的活动暂停时。如果不这样做,可能会在几个小时内耗尽电池。请注意,当屏幕关闭时,系统不会自动关闭传感器。”

“这两个传感器总是开着还是在工作?”--似乎这个问题没有一般的答案,因为它取决于硬件。事实上,加速度计和陀螺仪具有较低的功耗,但它们支持的操作系统可能消耗更多的电池。

“那么寄存器和注销注册会做什么呢?”--从它们那里消除了数据处理的功耗。

票数 1
EN

Stack Overflow用户

发布于 2017-04-27 05:58:27

加速度计和陀螺仪并不总是开着的。这将是疯狂的--任何在移动设备中吸引电力的东西都会在任何可能的情况下进入低功耗模式(目前没有一个应用程序正在请求它)。因此,需要进行登记/注销登记。

没有一个严格的规范要求硬件制造商这样做,因为这是一个提高电池寿命的常识优化。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39996315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档