2012-09-26 71 views
3

我創建了一個應用程序,通過在多個手機上運行相同的任務來比較android手機的cpu速度。我注意到,在HTC ONE X上,如果我關閉了屏幕,它會變得非常慢,而在另一部手機上做同樣的事情時它不會改變。在程序中,我把任務放在一個服務中,並在一個單獨的線程中運行,優先級設置爲最高值10.android保持cpu全速運行,而屏幕關閉

我試圖使用部分喚醒鎖來保持屏幕關閉時cpu運行。但在速度方面沒有任何區別。

我知道不同的操作系統/用戶界面(例如HTC感應器)有自己的電源管理策略。但我想知道是否有任何方法可以克服它,而不需要根植你的手機,意味着讓CPU以100%的時鐘頻率運行?

更新:最近的實驗表明,當屏幕關閉時,One X(使用ICS)將降低其CPU頻率並禁用多核功能,Galaxy Nexus(使用ICS)將降低約25%的性能,Nexus 7大多數時候性能會降低25%左右(偶爾會在屏幕關閉時以最高速度運行)。

回答

1
  1. 爲什麼喚醒鎖不起作用?

對於Qualcomm設備,使用名爲mpdecision的程序處理CPU的熱插拔。 mpdecision文件作爲供應商可執行文件運行在我們的系統中,它的功能是控制CPU的管理器。 mpdecision定義您的CPU1的性能,該文件被執行您的每一次屏幕熄滅,因此CPU1腳本是無用的,因爲mpdecision文件將覆蓋CPU1州長設置userspaceondemanduserspace是州長時,CPU1是在線和ondemand離線時。 Reference

  1. 有什麼我可以做的,以保持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

+0

感謝您的回覆!但是我的問題是爲什麼wakelock沒有工作,沒有紮根設備,我能做些什麼來保持CPU不降低頻率? – Bach

+0

我編輯了我的答案,涵蓋了您的問題。 @Bach – PageNotFound

+0

謝謝!這是非常有用的信息。我發現了更多有關mpdecision的描述,我會在你的答案中加入它們。 – Bach