Android获取cpu使用率,剩余内存和硬盘容量

内存信息

在proc/meminfo下有详细的内存使用情况,我这里获取的内存信息就是从这个文件里获取的.获取到详细的内存信息后根据我自己的需求,从bufferdreader中单独抽取出来了剩余的内存容量.

span style "font-family:Microsoft YaHei;font-size:14px;" Runtime runtime Runtime.getRuntime ;

Process p;

try p runtime.exec CMD_MEM ; catch IOException e Log.e "CameraActivity”, "run cmd "+CMD_MEM+" failed:" + e.getMessage ;

return null; InputStreamReader reader new InputStreamReader p.getInputStream ;

BufferedReader buf new BufferedReader reader ; span style "font-family:Microsoft YaHei;font-size:14px;" Runtime runtime Runtime.getRuntime ;

Process p;

try p runtime.exec CMD_MEM ; catch IOException e Log.e "CameraActivity", "run cmd "+CMD_MEM+" failed:" + e.getMessage ; return null; InputStreamReader reader new InputStreamReader p.getInputStream ; BufferedReader buf new BufferedReader reader ;

磁盘信息

使用Android.os下的StatFs来获取文件系统状态和一些磁盘信息.

span style "font-family:Microsoft YaHei;font-size:14px;" File root Environment.getRootDirectory ;

StatFs sf new StatFs root.getPath ;

long blockSize sf.getBlockSize ;

long availCount sf.getAvailableBlocks ;

return availCount * blockSize / 1024 / 1024 + "MB"; span style "font-family:Microsoft YaHei;font-size:14px;" File root Environment.getRootDirectory ;

StatFs sf new StatFs root.getPath ;

long blockSize sf.getBlockSize ;

long availCount sf.getAvailableBlocks ;

return availCount * blockSize / 1024 / 1024 + "MB";

CPU使用率,和当前进程的CPU占有率

3.1 CPU总使用率

在proc/stat下有详细的CPU使用情况.详细格式如下:

CPU 152342 1421 28562 1600830 12389 553 273 0 0

CPU后面的几位数字分别是

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使用情况.详细格式如下:

2

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐