Android 获取本应用CPU占用率 http://download.csdn.net/detail/zhoujiyu123/4441637有个现成的代码 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 谢谢你的回复.你发的这个链接, 是获取系统总的CPU使用率的.我需要获取的是本应用的CPU使用率. 已经解决. 获取系统CPU使用时间和应用CPU使用时间, 作比较就得出应用的CPU使用率下面贴代码: private static long getTotalCpuTime() { // 获取系统总CPU使用时间 String[] cpuInfos = null; try { BufferedReader reader = new BufferedReader(new InputStreamReader( new FileInputStream("/proc/stat")), 1000); String load = reader.readLine(); reader.close(); cpuInfos = load.split(" "); } catch (IOException ex) { ex.printStackTrace(); } long totalCpu = Long.parseLong(cpuInfos[2]) + Long.parseLong(cpuInfos[3]) + Long.parseLong(cpuInfos[4]) + Long.parseLong(cpuInfos[6]) + Long.parseLong(cpuInfos[5]) + Long.parseLong(cpuInfos[7]) + Long.parseLong(cpuInfos[8]); return totalCpu; } private static long getAppCpuTime() { // 获取应用占用的CPU时间 String[] cpuInfos = null; try { int pid = android.os.Process.myPid(); BufferedReader reader = new BufferedReader(new InputStreamReader( new FileInputStream("/proc/" + pid + "/stat")), 1000); String load = reader.readLine(); reader.close(); cpuInfos = load.split(" "); } catch (IOException ex) { ex.printStackTrace(); } long appCpuTime = Long.parseLong(cpuInfos[13]) + Long.parseLong(cpuInfos[14]) + Long.parseLong(cpuInfos[15]) + Long.parseLong(cpuInfos[16]); return appCpuTime; } 当然也可以使用ADB的shell命令行来查看CPU使用率:1. usb 连接手机2. 在命令行输入 adb shell, 进入 shell3. 键入命令 top -m 100 | grep com.***.***, grep后面是应用的包名称, 用来过滤关键字如下图所示:C:\Users\David Ding>adb shellroot@p940:/ # top -m 100 | grep com.ding.dingrecordertop -m 100 | grep com.ding.dingrecorder24807 1 0% S 11 501096K 45520K fg u0_a68 com.ding.dingrecorder24807 1 5% S 11 501232K 45676K fg u0_a68 com.ding.dingrecorder 感觉不对那,我通过楼主的代码得到的值和adb shell top -m 100比较,发现值不同,有很大差距 android入门——对话框(普通、列表带图标或普通列表、单选、多选) 关于蓝牙的一些小问题 基于Rexsee项目中心的在线开发实现hello World,含代码 postScale(scale, scale)作用 又碰到解决不了的问题了。怎么样调用拍照? android studio 怎么连cvs? webview的cookie问题 Gson解析请求服务器返回数据时报错 有人知道这个布局哪有错吗??急求。。。。 请问关于图片切换的问题 关于按钮事件中执行Dialog报错的问题 android摄像头采集 + x264进行编码
你发的这个链接, 是获取系统总的CPU使用率的.
我需要获取的是本应用的CPU使用率.
private static long getTotalCpuTime() { // 获取系统总CPU使用时间
String[] cpuInfos = null;
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(
new FileInputStream("/proc/stat")), 1000);
String load = reader.readLine();
reader.close();
cpuInfos = load.split(" ");
} catch (IOException ex) {
ex.printStackTrace();
}
long totalCpu = Long.parseLong(cpuInfos[2])
+ Long.parseLong(cpuInfos[3]) + Long.parseLong(cpuInfos[4])
+ Long.parseLong(cpuInfos[6]) + Long.parseLong(cpuInfos[5])
+ Long.parseLong(cpuInfos[7]) + Long.parseLong(cpuInfos[8]);
return totalCpu;
} private static long getAppCpuTime() { // 获取应用占用的CPU时间
String[] cpuInfos = null;
try {
int pid = android.os.Process.myPid();
BufferedReader reader = new BufferedReader(new InputStreamReader(
new FileInputStream("/proc/" + pid + "/stat")), 1000);
String load = reader.readLine();
reader.close();
cpuInfos = load.split(" ");
} catch (IOException ex) {
ex.printStackTrace();
}
long appCpuTime = Long.parseLong(cpuInfos[13])
+ Long.parseLong(cpuInfos[14]) + Long.parseLong(cpuInfos[15])
+ Long.parseLong(cpuInfos[16]);
return appCpuTime;
}
1. usb 连接手机
2. 在命令行输入 adb shell, 进入 shell
3. 键入命令 top -m 100 | grep com.***.***, grep后面是应用的包名称, 用来过滤关键字如下图所示:
C:\Users\David Ding>adb shell
root@p940:/ # top -m 100 | grep com.ding.dingrecorder
top -m 100 | grep com.ding.dingrecorder
24807 1 0% S 11 501096K 45520K fg u0_a68 com.ding.dingrecorder
24807 1 5% S 11 501232K 45676K fg u0_a68 com.ding.dingrecorder