Читать текущую частоту процессора
Я пытаюсь прочитать текущую частоту процессора. После некоторых исследований я нашел следующий код:
public String ReadCPUMhz2() throws IOException
{
String[] args = {"/system/bin/cat", "/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq"};
ProcessBuilder cmd;
cmd = new ProcessBuilder(args);
Process process = null;
process = cmd.start();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
StringBuilder log=new StringBuilder();
String line;
Log.d("test","aha");
while ((line = bufferedReader.readLine()) != null) {
log.append(line + "\n");
}
Log.d("test",log.toString());
return log.toString();
}
Но это ничего не делает. Logcat показывает "aha" перед циклом while, но "log" кажется пустым. Я не вижу, что я сделал не так: s?
PS: извините за плохой английский.
1 ответ
cpuinfo_max_freq выдаст вам максимальную частоту, а не текущую. Существует другое значение, scaling_cur_freq (находится в / sys / devices / system / cpu / cpu0 / cpufreq / scaling_cur_freq), которое даст вам текущую частоту.
Я обращаюсь к cpuinfo_max_freq таким образом, может быть, вы могли бы применить это к scaling_cur_freq и посмотреть, работает ли он?
String cpuMaxFreq = "";
RandomAccessFile reader = new RandomAccessFile("/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq", "r");
cpuMaxFreq = reader.readLine();
reader.close();