我想要一个方法来获取android中当前的整体CPU使用率!我使用了一种我在本网站上找到的方法,如下所述。
private float readUsage() {
try {
RandomAccessFile reader = new RandomAccessFile("/proc/stat", "r");
String load = reader.readLine();
String[] toks = load.split(" ");
long idle1 = Long.parseLong(toks[5]);
long cpu1 = Long.parseLong(toks[2]) + Long.parseLong(toks[3]) + Long.parseLong(toks[4])
+ Long.parseLong(toks[6]) + Long.parseLong(toks[7]) + Long.parseLong(toks[8]);
try {
Thread.sleep(360);
} catch (Exception e) {}
reader.seek(0);
load = reader.readLine();
reader.close();
toks = load.split(" ");
long idle2 = Long.parseLong(toks[5]);
long cpu2 = Long.parseLong(toks[2]) + Long.parseLong(toks[3]) + Long.parseLong(toks[4])
+ Long.parseLong(toks[6]) + Long.parseLong(toks[7]) + Long.parseLong(toks[8]);
return (float)(cpu2 - cpu1) / ((cpu2 + idle2) - (cpu1 + idle1));
} catch (IOException ex) {
ex.printStackTrace();
}
return 0;
}
但是这个方法只返回一个浮点值。我需要的是当前的使用统计信息,如系统使用的百分比,以及用户使用的百分比!谁能帮我这个。一个教程会很好,但是如果有任何人足够慷慨给我一个好的代码那将是我的荣幸!
谢谢你!答案 0 :(得分:0)
从linux proc手册页:
的/ proc / STAT 内核/系统统计。与架构不同。共同 条目包括:
cpu 3357 0 4313 1362393 The amount of time, measured in units of USER_HZ (1/100ths of a second on most architectures, use sysconf(_SC_CLK_TCK) to obtain the right value), that the system spent in user mode, user mode with low priority (nice), system mode, and the idle task, respectively. The last value should be USER_HZ times the second entry in the uptime pseudo-file.
您可能还想查看AOSP平台/ system / core / toolbox中“top”的来源
答案 1 :(得分:0)
当你查看“proc / stat”
中的统计数据时