cpu的頻率信息可以在/sys/devices/system/cpu/cpu0/cpufreq/路徑下讀取
比如最高頻率路徑為:/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq(文件內容就是一行字符串:頻率值)
這里要注意一點點是cpuinfo_max_freq文件不是一直存在的,讀取之前得判斷這個文件是否存在(至於這個文件什么時候創建我就不清楚了)
比如在循環中讀取
/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq
/sys/devices/system/cpu/cpu1/cpufreq/cpuinfo_max_freq
/sys/devices/system/cpu/cpu2/cpufreq/cpuinfo_max_freq
……
因為我們讀取的是文件,所以有兩種方式
第一種是執行cat命令
第二種是直接打開文件讀取,比如RandomAccessFile類直接打開讀取第一行
……
//coreCount是cpu個數,這個是通過統計/sys/devices/system/cpu/cpu0的個數得到的(cpu命令方式:cpu0,cpu1,cpu2……)
for (int i = 0; i < coreCount; i++) { target = new File(String.format("/sys/devices/system/cpu/cpu%d/cpufreq", i), "cpuinfo_max_freq"); if (target.exists()) { try { cmd = new ProcessBuilder("/system/bin/cat",target.getPath()); process = cmd.start(); reader = new BufferedReader(new InputStreamReader(process.getInputStream())); readLine = reader.readLine(); if (!TextUtils.isEmpty(readLine)) { maxFreq= readLine; break; } } catch (IOException ex) { maxFreq= null; ex.printStackTrace(); }
//finally中釋放各種資源 } }
……