如何在android中获得当前的整体cpu使用率

时间:2012-07-11 18:09:38

标签: android android-layout android-intent android-service

我想要一个方法来获取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;
} 

但是这个方法只返回一个浮点值。我需要的是当前的使用统计信息,如系统使用的百分比,以及用户使用的百分比!谁能帮我这个。一个教程会很好,但是如果有任何人足够慷慨给我一个好的代码那将是我的荣幸!

谢谢你!

2 个答案:

答案 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”

中的统计数据时
  • 它将为您提供整体CPU使用率(内核模式+用户模式)
  • 您只能获得系统和CPU的CPU使用率。每个进程的用户模式proc / [pid] / stat       - 第14个参数: - jiffies中的用户模式       - 第15个参数: - jiffies中的kernal模式
  • 计算所有进程/ pids的内核模式使用情况,并将其视为系统CPU使用情况......