2011年8月29日月曜日

CPU使用率の計算方法1 (システム)

AndroidはLinuxをベースにしているため、Linux同様、/proc/にアクセスして カーネルに関する情報などを取得することができる。
http://www.kernel.org/doc/man-pages/online/pages/man5/proc.5.html で書かれているように、/proc/statから、システムが消費した時間(tick単位)を取得することができる。 Android端末で実際に/proc/statにアクセスしてみると、 cpu 970616 85105 578431 25520823 316076 976 33674 0 0 0 のような情報が取得できる。10項目存在する。上記のサイトでは、9項目までは説明がある。CPU利用率ビューアーでは、すべての項目の和を使用した。
static private long getTick() {
  try {
   String filename = "/proc/stat";
   String stat = load(filename);
   String[] split = stat.split(" +");
   long time = 0;
   for (int i = 1; i < split.length; i++) time += Long.parseLong(split[i]);
   return time;
  } catch (Exception e) {
   return 0;
  }
 }

 static private String load(String filename) {
  try {
   BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(filename)));
   String str = reader.readLine();
   if (str == null) return null;
   reader.close();
   return str;
  } catch (Exception e) {
  }
  return null;
 }

0 件のコメント:

コメントを投稿