2011年8月29日月曜日

CPU使用率の計算方法2 (プロセス)

AndroidはLinuxをベースにしているため、Linux同様、/proc/にアクセスして、プロセスの情報を取得することができる。
http://www.kernel.org/doc/man-pages/online/pages/man5/proc.5.html で書かれているように、/proc/[pid]配下から実行中のプロセスについての情報を取得できる。 CPU利用率ビューアーでは、/proc/[pid]/statの項目にあるプロセスのtick単位の実行時間(utime/stime)を使用した。
static private long getTick(int pid) {
  try {
   String filename = "/proc/" + pid + "/stat";
   String stat = load(filename);
   String[] split = stat.split(" +");
   return Integer.parseInt(split[13]) + Long.parseLong(split[14]);
  } 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 件のコメント:

コメントを投稿