0

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;
} 

しかし、このメソッドは float 値を 1 つだけ返します。私が必要としているのは、システムの使用率やユーザーの使用率など、現在の使用統計です。誰でもこれで私を助けることができます。チュートリアルがあればいいのですが、誰かが私に良いコードを与えるのに十分寛大であるなら、それは私の喜びです!

ありがとう!

4

2 に答える 2

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 platform/system/core/toolbox の「top」のソースも参照してください。

于 2012-07-11T18:41:45.013 に答える
0

「proc/stat」で統計を見ているとき

  • 全体的な CPU 使用率 (カーネル モード + ユーザー モード) を提供します。
  • プロセス proc/[pid]/stat ごとのシステムおよびユーザー モードに関してのみ CPU 使用率を取得できます。
  • すべてのプロセス/pid のカーネル モード使用量を計算し、それをシステム CPU 使用量と見なすことができます...
于 2013-05-09T10:20:49.030 に答える