2010-06-11 48 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