您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > Android获取cpu使用率,剩余内存和硬盘容量
重庆达渝仁科技官网:、内存信息在proc/meminfo下有详细的内存使用情况,我这里获取的内存信息就是从这个文件里获取的.获取到详细的内存信息后根据我自己的需求,从bufferdreader中单独抽取出来了剩余的内存容量.1.spanstyle=font-family:MicrosoftYaHei;font-size:14px;Runtimeruntime=Runtime.getRuntime();2.Processp;3.try{4.p=runtime.exec(CMD_MEM);5.}catch(IOExceptione){6.Log.e(CameraActivity”,runcmd(+CMD_MEM+)failed:+e.getMessage());7.returnnull;8.}9.InputStreamReaderreader=newInputStreamReader(p.getInputStream());10.BufferedReaderbuf=newBufferedReader(reader);/span2、磁盘信息使用Android.os下的StatFs来获取文件系统状态和一些磁盘信息.1.spanstyle=font-family:MicrosoftYaHei;font-size:14px;Fileroot=Environment.getRootDirectory();2.StatFssf=newStatFs(root.getPath());3.longblockSize=sf.getBlockSize();4.longavailCount=sf.getAvailableBlocks();5.return(availCount*blockSize)/1024/1024+MB;/span3、CPU使用率,和当前进程的CPU占有率重庆达渝仁科技官网:下有详细的CPU使用情况.详细格式如下:CPU15234214212856216008301238955327300CPU后面的几位数字分别是user从系统启动开始累计到当前时刻,处于用户态的运行时间,不包含nice值为负进程。nice从系统启动开始累计到当前时刻,nice值为负的进程所占用的CPU时间system从系统启动开始累计到当前时刻,处于核心态的运行时间idle从系统启动开始累计到当前时刻,除IO等待时间以外的其它等待时间iowait从系统启动开始累计到当前时刻,IO等待时间irq从系统启动开始累计到当前时刻,硬中断时间softirq从系统启动开始累计到当前时刻,软中断时间所以totalCpuTime这个7个属性的和.CPU总数用率的算法是:100*((totalCpuTimeS-totalCpuTimeF)-(idelS-idelF))/(totalCpuTimeS-totalCpuTimeF)3.2当前进程的CPU使用率/proc/pid/stat下则是该pid的CPU使用情况.详细格式如下:2341(cn.jesse.camera)S1131113100-1391224612450020332161200200重庆达渝仁科技官网:其中淡红色的四位数字分别是:utime该任务在用户运行状态的时间stime该任务在核心运行的时间cutime所有已死线程在用户状态运行状态的时间cstime所有已死线程在核心的运行时间所以processCpuTime为这个四个属性的和.当前进行所占CPU的算法是:100*(processCpuTimeS-processCpuTimeF)/(totalCpuTimeS-totalCpuTimeF)1.spanstyle=font-family:MicrosoftYaHei;font-size:14px;String[]cpuInfos=null;2.try{3.BufferedReaderreader=newBufferedReader(newInputStreamReader(4.newFileInputStream(/proc/stat)),1000);5.Stringload=reader.readLine();6.reader.close();7.cpuInfos=load.split();8.}catch(IOExceptionex){9.Log.e(TAG,IOException+ex.toString());10.return0;11.}12.longtotalCpu=0;13.try{14.totalCpu=Long.parseLong(cpuInfos[2])15.+Long.parseLong(cpuInfos[3])+Long.parseLong(cpuInfos[4])16.+Long.parseLong(cpuInfos[6])+Long.parseLong(cpuInfos[5])17.+Long.parseLong(cpuInfos[7])+Long.parseLong(cpuInfos[8]);18.}catch(ArrayIndexOutOfBoundsExceptione){19.Log.i(TAG,ArrayIndexOutOfBoundsException+e.toString());重庆达渝仁科技官网:}/span1.spanstyle=font-family:MicrosoftYaHei;font-size:14px;String[]cpuInfos=null;2.try{3.intpid=android.os.Process.myPid();4.BufferedReaderreader=newBufferedReader(newInputStreamReader(5.newFileInputStream(/proc/+pid+/stat)),1000);6.Stringload=reader.readLine();7.reader.close();8.cpuInfos=load.split();9.}catch(IOExceptione){10.Log.e(TAG,IOException+e.toString());11.return0;12.}13.longappCpuTime=0;14.try{15.appCpuTime=Long.parseLong(cpuInfos[13])16.+Long.parseLong(cpuInfos[14])+Long.parseLong(cpuInfos[15])17.+Long.parseLong(cpuInfos[16]);18.}catch(ArrayIndexOutOfBoundsExceptione){19.Log.i(TAG,ArrayIndexOutOfBoundsException+e.toString());20.return0;21.}/span
本文标题:Android获取cpu使用率,剩余内存和硬盘容量
链接地址:https://www.777doc.com/doc-2897396 .html