在具有AMOLED屏幕的设备上实现“始终显示”

时间:2019-01-04 01:34:50

标签: android display

我对如何在具有AMOLED型屏幕的较新设备上使用Android的“ Always On”功能感到困惑。我的理解是,如果所有像素均为黑色(恰好为#000000),那么这些屏幕基本上将不消耗功率,但是我在寻找有关如何对常亮显示器进行编程方面的信息方面并没有取得多少成功。

然后,我读到类似this one之类的问题,这似乎暗示您无法从自己的代码访问Always On功能。

但是我想到,只要完成以下操作,我就可以完成同一件事:

  1. 关闭屏幕顶部的标题栏
  2. 获取屏幕锁定,以使屏幕不会关闭。
  3. 请确保屏幕上显示的所有内容均为黑色,除了要显示的几个像素之外。

我唯一担心的是,目前尚不清楚这是否真正实现了常亮显示器所承诺的节能效果。例如,保持屏幕打开状态也会自动保持CPU锁定,或者可能会阻止深度睡眠。某些人似乎还发现all black pixels don't save much power on AMOLED可能是上述原因之一,或者可能需要调整亮度设置。

我在这里要实现低功耗的常开状态是否正确?我的目标是双重的:

  1. 最小状态显示-我基本上只希望打开几个像素(例如少于10个)以指示应用程序的状态
  2. 如果可能的话,在仍然省电的情况下,保持屏幕响应,以便我可以点击(全黑)屏幕的某些区域以触发某些状态更改。如果这样做不能节省电能,那么我可以使用接近传感器,尽管这样会比较差。

更新:似乎这种 应该可行,因为我在GitHub上找到了一个名为Always On AMOLED的Android项目。不幸的是,快速浏览源代码并不能完全清楚地知道“ Always On”部分的处理方式(有很多 lot 类)。

更新2:我进行了一次测试,将屏幕设置为全黑(#000000)并保持屏幕锁定。但是,电池放电的时间比关闭屏幕的时间要快许多(每小时大约5%,比关闭屏幕的时间快5-10倍)。在阅读有关保持屏幕唤醒锁的内容时,看来可使CPU保持唤醒状态,这可以解释电池电量的消耗。有什么方法可以使屏幕保持开启状态,而无需按住CPU锁定并使设备进入打ze模式等?

0 个答案:

没有答案