关于Android CPU使用率的问题

Super超 发布于 2012/08/10 09:56
阅读 4K+
收藏 0
我通过学习他人给出的资料写的测试CPU使用率的方法,但是发现给出的值与一些正规软件,例如安卓优化大师得出的结果值有出入,想问问各位大神此方法可对?
	public static 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 (int) (100 * (cpu2 - cpu1) / ((cpu2 + idle2) - (cpu1 + idle1)));

		} catch (IOException ex) {
			ex.printStackTrace();

		}
		return 0;

	}

加载中
0
G
Geojyzhang

It should be toks[4] is idle, not toks[5]

返回顶部
顶部