gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 13:13:50 28 4
gpt4 key购买 nike

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

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

  1. 这两个传感器是始终开启还是处于 Activity 状态? (如果是,任何引用)。
  2. 注册和取消注册有什么作用?如果它们一直亮着,
    那么注销它们不会有任何区别,至少在功耗方面。

这些问题的背景或原因:陀螺仪比加速度计消耗更多的功率(根据我的分析,它高 4-6 倍)。现在,如果这些传感器始终处于打开状态,那么我可以在我的应用程序中同时使用它们,因为我的应用程序不是由这些传感器的 Activity 状态引起的功耗的原因。由于我使用这些传感器值的方式以及我读取它们的频率,我的应用程序将负责功耗。但是,如果它们被禁用或关闭(根本不消耗功率),那么我必须谨慎决定是否要使用它们,因为当我注册它们时,由于它们的 Activity ,我也会增加功耗status 除了处理它们的值。

最佳答案

主要作为 Andriy Omelchenko 的答案的补充,带有更多链接:

1.这在 Androids Architecture Documentation in the Sensors Section 中广泛且“独立于制造商” .具体来说 Accelerometer and Gyroscope处理为 non-wakup持续报告事件但可能不会唤醒 SoC 的传感器。

所以是的,您可以假设这 2 个传感器始终开启

2。此外文档指出:如果应用程序需要后台数据,它需要持有一个唤醒锁 - 可能是 the Partial唤醒锁将防止系统进入低功耗/ sleep 模式 - 这样事件就可以在不被丢弃的情况下得到处理和交付。显然,这会更快地耗尽电池电量。

您可能暗示只要您不保持唤醒锁,注册/取消注册对功耗的影响可能很小。

但是一般来说,您不应该认为注册/取消注册传感器以实现功率优化是无用的 - 单次传感器除外。不仅是因为用于处理和向应用程序传递事件的能力,以及使系统免于 sleep 的可能性。这是一个Framework recommendation这些通常不是没有原因的,比如使用 register with report delay to make use of batching if possible .影响可能会随着不同的硬件或其他因素而改变。

它也可能是一个有趣的错误源,如果 - 例如 - 您假设数据是根据 Wakelock 提供的:文档仅说明对于非唤醒传感器 驱动程序不允许持有唤醒锁,传感器不应唤醒 SoC。这意味着您的应用可能在后台处理事件,也可能不在后台处理,具体取决于设备、系统、已安装的应用等。

关于android - Android 手机中的加速度计和陀螺仪及其功耗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39996315/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com