AndroidのCPU 使用率

android-cpu-usage.png

AndroidにおいてCPU利用率は、電池の持ちに関わる。

private long getCpuTime() throws Exception {
            // カーネル全体の統計情報を表示する
            String [] cmdArgs = {"/system/bin/cat","/proc/stat"};
 
            String cpuLine    = "";
            StringBuffer cpuBuffer    = new StringBuffer();
 
            ProcessBuilder cmd = new ProcessBuilder(cmdArgs);
            Process process = cmd.start();
 
            InputStream in  = process.getInputStream();
 
            // 統計情報より1024バイト分を読み込む
            // cpu user/nice/system/idle/iowait/irq/softirq/steal/の情報を取得する
 
            byte[] lineBytes = new byte[1024];
 
            while(in.read(lineBytes) != -1 ) {
                cpuBuffer.append(new String(lineBytes));
            }
            in.close();
            cpuLine = cpuBuffer.toString();
 
            // 1024バイトより「cpu~cpu0」までの文字列を抽出
            int start = cpuLine.indexOf("cpu");
            int end = cpuLine.indexOf("cpu0");
 
            cpuLine = cpuLine.substring(start, end);
            long cputime = Long.parseLong(cpuLine.split(" ")[2]);
            return cputime;
        }

cpu-usage

サポートサイト Wikidot.com cpu-usage