日期:2014-05-16  浏览次数:20393 次

windows下使用adb工具查看android程序cpu和内存消耗情况
       今天在调试android程序时,发现程序有点卡,觉得应该看看程序的cpu和内存消耗,一直以来都在windows下编程,已经习惯了windows任务管理器或者资源监视器,此时猛然发现在android环境下自己还真不知道如何查看当前程序的cpu和内存消耗。于是查了一些资料,发现这篇文章讲的还算详细,本文对其进行了整理,并做了一点补充。先简单介绍下我的android安装目录,现在悔不该把android安装在C盘,太占地方了,搞的现在C盘剩余空间大小已经是个位数了。好了,拿出数据线先把手机和电脑连上吧。
                                                      
       1. 打开终端,进入上述目录,如下图所示:
                                            
       2. 输入adb shell,打开adb命令行,如下图所示:
                                         
       3. 查看cpu使用情况:
       输入命令:top -m 10 -s cpu(-m显示最大数量,-s 按指定行排序),如下图所示:
                             
参数含义:
PID  : progress identification,应用程序ID
S    : 进程的状态,其中S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值是负数
#THR : 程序当前所用的线程数
VSS  : Virtual Set Size虚拟耗用内存(包含共享库占用的内存)
RSS  : Resident Set Size实际使用物理内存(包含共享库占用的内存)
PCY  : 前台(fg)和后台(bg)进程
UID  : User Identification,用户身份ID
Name : 应用程序名称
(注意第一列的pid,使用pid值可以查看当前程序的内存使用情况。)
       4. 查看指定程序内存使用情况:
       输入命令:dumpsys meminfo pid,比如查看手机安装的360安全卫士,那么实际命令应该为:dumpsys meminfo 3253,如下图所示:
                          
参数含义:
dalvik : dalvik使用的内存
native : native堆上的内存,指C\C++堆的内存(android 3.0以后bitmap就是放在这儿)
other  : 除了dalvik和native的内存,包含C\C++非堆内存······
Pss    : 该内存指将共享内存按比例分配到使用了共享内存的进程
heap alloc    : 已使用的内存
heap free     : 空闲的内存
share dirty   : 共享,但有不能被换页出去的内存
private dirty : 非共享,又不能被换页出去的内存(比如linux系统中为了提高分配内存速度而缓冲的小对象,即使你的进程已经退出,该内存也不会被释放)
5. 使用ctrl + c,退出adb命令行。

<