2010-06-11 44 views

回答

38

要具有頻率在Android上,只需讀取/ sys目錄這些特殊文件:

#cat "/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq" 
#cat "/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq" 
#cat "/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq" 

您將有電流,最小和最大頻率允許的。

+3

真棒回答埃利斯,你真的幫了我很多。我在研究中發現的一件事情是,scaling_cur_freq不一定是當前的CPU頻率,而是內核認爲頻率是什麼。要獲得真正的頻率,您需要root訪問權限來讀取cpuinfo_cur_freq。此外,獲得root訪問權限允許您設置cpu速度,這對於在最佳/最差情況下進行分析非常有用。 – JonnyBoy 2012-05-25 19:01:52

+0

Hummm在我看來,即使有root權限,您也無法編輯cpuinfo_ *文件。 – JohnTortugo 2014-01-30 18:49:28

+0

我們如何獲得CPU負載或利用率? – Ashkan 2015-06-28 19:54:52

7

不是MHz,但至少是某種東西。 bogoMIPS值可能對您有用。

private String ReadCPUinfo() 
{ 
    ProcessBuilder cmd; 
    String result=""; 

    try{ 
    String[] args = {"/system/bin/cat", "/proc/cpuinfo"}; 
    cmd = new ProcessBuilder(args); 

    Process process = cmd.start(); 
    InputStream in = process.getInputStream(); 
    byte[] re = new byte[1024]; 
    while(in.read(re) != -1){ 
    System.out.println(new String(re)); 
    result = result + new String(re); 
    } 
    in.close(); 
    } catch(IOException ex){ 
    ex.printStackTrace(); 
    } 
    return result; 
} 
+0

謝謝,但有什麼辦法可以將它轉換爲MHz或在某處讀取它? – michael 2010-06-11 16:18:44

+10

任何你不是直接打開/ proc/cpuinfo文件直接讀取它的原因? – fadden 2010-06-11 23:38:58

+0

邁克爾,閱讀關於bogoMIPS的維基頁面,有一個公式。 fadden,我不確定這個文件可以簡單地從java中讀取,只是發現這個代碼正在鋪設。 – 2010-06-12 13:22:48

3

如果你有興趣在您的系統處於什麼狀態多久度過的,簽出文件

/sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state 

我不知道,root訪問權限是否有必要爲。

+0

與'cpuinfo_cur_freq'不同,根訪問似乎不是必須的。 – 2013-10-08 17:23:23