安卓手机-传感器读数如何影响电池寿命

12

我在我的应用程序中添加了一项功能,该功能使用接近传感器和加速度传感器(第二个传感器用于检测晃动)。这是在一直运行的服务中实现的(如果用户选择它的话)。但我担心我的应用程序将消耗电池电量。我没有使用任何唤醒锁定,但我仍然可以在日志中看到屏幕关闭时获得读数。问题是:以下哪种说法是正确的?

  1. 提到的两个传感器无论如何都会被Android系统全天候激活(在这种情况下,我收集读数不会影响电池寿命...我猜)。
  2. Android系统大部分时间都会关闭这些传感器(在这种情况下,通过我的服务始终保持传感器开启会影响电池寿命)。

如果(2)是正确的:是否有可能为传感器实现自己的睡眠周期,还是整个切换过程会让情况更糟?

2个回答

4

传感器消耗的电力数量因传感器和设备而异。

平均而言,最耗电的传感器是GPS、加速度计和陀螺仪。让它们一直处于 ON 状态会更快地降低电池电量。因此,在不必要的情况下应暂停传感器。

此外,光线传感器和罗盘的电量消耗要少得多,但如果您长时间使用它们,它们也会影响电池寿命。

除此之外,您可以测试您的应用程序需要多少电力,或者您可以使用 getPower() 返回在使用此传感器时使用的电流(以 mA 为单位)。

实际上,没有确切的方法。如果您的应用程序必须使用传感器,则只在必要时使用它们。

谢谢


1
加速度计不是一直开着的吗?至少在屏幕开着的时候是这样的...否则设备旋转时屏幕就不会旋转了...那么我的加速度计读数会影响电池寿命吗?如果是这样,我可以在手机锁定时注销加速度计,这样就不会对电池产生任何影响了。 - Anonymous
3
当设备锁定或进入菜单,或者当我们的应用在后台运行时,加速度计可以被暂停,当我们的应用重新回到屏幕上时,它可以被重新启动。我不知道你制作了什么样的应用程序,但是我在我的动态壁纸应用程序中使用了同样的方法,考虑如何使用,它几乎一直在后台运行以提供视差效果,即使有50000个用户,我也没有收到任何电池耗尽的报告,所以我希望人们知道它只会消耗一点点电量,他们仍然喜欢使用加速度计。顺便说一下,你可以在Play商店中搜索“woody land”来查看并测试它。谢谢。 - unitedartinc
1
加速度计专门为手机设计了低功耗中断模式。当加速度计检测到方向变化时,它会发送一个中断信号。手机不会不断地轮询传感器数据。 - Hans

0

您可以通过在较长的时间间隔(如50毫秒)内读取传感器的值来降低功耗, 即任何安卓手机都会在5毫秒或10毫秒内读取数据,具体取决于手机品牌,我们可以手动将该时间缩短至50毫秒至70毫秒。 这将增加电池寿命,并且不会对进程产生影响。 谢谢。


1
Android API仅提供传感器采集的固定频率值。除了提供的值之外,无法更改传感器数据收集的速率。https://developer.android.com/reference/android/hardware/SensorManager.html#SENSOR_DELAY_FASTEST - sparkonhdfs
3
自 Android API 9(姜饼;2010年末)以来,@iamseiko 所说的不正确。您可以使用相同的 registerListener(SensorEventListener、Sensor、int) 方法设置传感器的采样率(以微秒为单位)。 https://developer.android.com/reference/android/hardware/SensorManager.html - Cramps

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接