获取Android上每个内核的当前CPU使用率

时间:2018-07-23 16:59:25

标签: java android mobile

我开发了一个Android应用程序来获取设备信息。对于当前的总CPU使用率,我正在使用this线程中的代码。

但是我想要的是每个内核的CPU频率。因此,我尝试修改代码以使用cpu0。但是我没有成功。所以,任何人都有这个问题。您是如何克服它的?

更新

我尝试通过从“ scaling_cur_freq”文件中获取值来实现这一目标。该文件包含每个内核的当前频率。所以这是我的代码,以防万一有人需要它。

try {
        double currentFreq;
        RandomAccessFile readerCurFreq;
        readerCurFreq = new RandomAccessFile("/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq", "r");
        String curfreg = readerCurFreq.readLine();
        currentFreq = Double.parseDouble(curfreg) / 1000;
        readerCurFreq.close();
        String finalfre = "Curent Frequency of Core 0 is" + currentFreq;
    } catch (IOException ex) {
        String finalfre = "Core is Idle";
        ex.printStackTrace();
    }

您可以在内核数之间循环。这样您就可以获得所有内核的频率。有时,如果内核处于空闲或停止状态,则此代码可能会产生异常。处理它,您就很好了

1 个答案:

答案 0 :(得分:1)

您指定的线程只有如何获取CPU使用率。...如果仔细阅读此answer,您会发现其中的方法为“ getCpuUsage”。传递内核的cpuid后,此方法将返回每个内核的当前CPU使用率。