利用Doraemonkit CPU检测功能,原理是分析/proc/stat/文件,
文件记录的是系统进程整体的统计信息,得到CPU的使用率 CPU 使用率
(以占总可用 CPU 时间的百分比表示)
PerformanceDataManager.executeCpuData
if (mAboveAndroidO) {//是否是8.0以上
mLastCpuRate = getCpuDataForO();
} else {
mLastCpuRate = getCPUData();
}
mProcStatFile = new RandomAccessFile("/proc/stat", “r”);
mAppStatFile = new RandomAccessFile("/proc/" + android.os.Process.myPid() + “/stat”, “r”);
/proc/stat//节点记录的是系统进程整体的统计信息
解析见博客https://blog.csdn.net/houzhizhen/article/details/79474427
CPU时间=user+system+nice+idle+iowait+irq+softirq
CPU在t1到t2时间段总的使用时间 = ( user2+ nice2+ system2+ idle2+ iowait2+ irq2+ softirq2) - ( user1+ nice1+ system1+ idle1+ iowait1+ irq1+ softirq1)
CPU在t1到t2时间段空闲使用时间 = (idle2 - idle1)
CPU在t1到t2时间段即时利用率 = 1 - CPU空闲使用时间 / CPU总的使用时间
IOWait在t1到t2时间段=(iowait 2-iowait1) / CPU总的使用时间