android在屏幕关闭时保持cpu全速运行
Posted
技术标签:
【中文标题】android在屏幕关闭时保持cpu全速运行【英文标题】:android keep cpu running at full speed while screen is off 【发布时间】:2012-09-26 21:17:34 【问题描述】:我创建了一个应用程序,通过在多部手机上运行相同的任务来比较 android 手机的 cpu 速度。我注意到在 HTC ONE X 上,如果我关闭屏幕,它会变得慢得多,而在另一部手机上做同样的事情时它不会改变。在程序中,我将任务放在一个服务中,并在一个单独的线程中运行,优先级设置为最高值 10。
我尝试使用部分唤醒锁在屏幕关闭时保持 CPU 运行。但就速度而言,它没有任何区别。
我了解不同的操作系统/用户界面(例如 HTC 感觉)有自己的电源管理策略。但是我想知道是否有任何方法可以在不root手机的情况下克服它,意味着保持cpu以100%的时钟频率运行?
更新:最近的实验表明,当屏幕关闭时,One X(带 ICS)会降低其 CPU 频率并禁用多核功能,Galaxy Nexus(带 ICS)会降低约 25% 的性能,Nexus 7 会大部分时间会降低大约 25% 的性能(有时它可以在屏幕关闭时以最高速度运行)。
【问题讨论】:
【参考方案1】:-
为什么唤醒锁不起作用?
对于 Qualcomm 设备,CPU 的热插拔是由一个名为 mpdecision
的程序处理的。 mpdecision
文件作为供应商可执行文件在我们的系统中运行,它的作用是控制 CPU 的调控器。 mpdecision
定义 cpu1 的性能,每次屏幕关闭时都会执行该文件,因此 cpu1 脚本是无用的,因为 mpdecision
文件将 cpu1 调控器设置覆盖为 userspace
ondemand
,userspace
是调控器当 cpu1 在线时,ondemand
离线时。 Reference
-
有什么办法可以让 CPU 不降低其频率吗?
你需要停止mpdecision
,然后你才能保持CPU频率。但是,停止mpdecision
需要root 权限。所以我认为没有root权限是无法保持CPU频率的。
您可以向/sys/devices/system/cpu/cpu0/online
写入值来打开或关闭CPU 的核心,向/sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed
写入值来设置每个核心的频率。我在 Nexus 4 中尝试了这种方法,效果很好。
更多详情可以查看this。
【讨论】:
感谢您的回复!但我的问题是为什么唤醒锁不起作用并且没有 root 设备,我可以做些什么来保持 CPU 不降低其频率? 谢谢!这是非常有用的信息。我找到了更多关于 mpdecision 的描述,我会在你的答案中添加它们。以上是关于android在屏幕关闭时保持cpu全速运行的主要内容,如果未能解决你的问题,请参考以下文章