当屏幕关闭时,android保持cpu全速运行

时间:2012-09-26 21:17:35

标签: android multithreading service cpu power-management

我创建了一个应用程序,通过在多部手机上运行相同的任务来比较android手机的CPU速度。我注意到在HTC ONE X上,如果我在关闭屏幕时变得慢得多,而在另一部手机上做同样的事情时它不会改变。在程序中,我将任务放在一个服务中,并在一个单独的线程中运行,优先级设置为最高值10.

我尝试使用部分唤醒锁定来在屏幕关闭时保持cpu运行。但它在速度方面没有任何区别。

据我所知,不同的操作系统/用户界面(例如HTC意识)有自己的电源管理策略。但我想知道是否有任何方法可以克服它而不用你的手机,这意味着保持CPU以100%的时钟速率运行?

更新:最近的实验表明,当屏幕关闭时,One X(带ICS)将降低其CPU频率并禁用多核功能,Galaxy Nexus(带ICS)将降低约25%的性能,Nexus 7将大多数时候性能降低约25%(偶尔屏幕关闭时可以以最高速度运行)。

1 个答案:

答案 0 :(得分:1)

  1. 唤醒锁定为什么不起作用?
  2. 对于Qualcomm设备,使用名为mpdecision的程序处理CPU的热插拔。 mpdecision文件作为供应商可执行文件在我们的系统中运行,它的作用是控制cpu的调控器。 mpdecision定义了cpu1的性能,每次屏幕关闭时都会执行文件,因此cpu1脚本无用,因为mpdecision文件会将cpu1调控器设置覆盖为userspace {{1} },ondemand是cpu1在线时的调控器,userspace在离线时是。 Reference

    1. 我有什么办法可以让CPU不降低频率吗?
    2. 您需要停止ondemand,然后才能保持CPU频率。但是,停止mpdecision需要root权限。所以我认为你不能在没有root权限的情况下保持CPU频率。

      您可以将值写入mpdecision以打开或关闭CPU核心,并将值写入/sys/devices/system/cpu/cpu0/online以设置每个核心的频率。我在Nexus 4中尝试了这种方法,它运行正常。

      有关详细信息,请参阅this