Eclipse
首先,我们在DDMS的界面的设备选项中找到手机设备,可以看到它里面正在运行的进程:
点一下“Update Heap”图标,然后在Heap选项中查看我们标注的进程的内存使用情况:
点一下”Cause GC”, 相当于向虚拟机执行一次GC请求,然后无需再按就可以动态的查看该应用程序的内存使用情况。
必须是root后的手机,或者使用模拟器:
最值得关注的就是”data object“的”Total Size”,它决定了是否存在内存泄露的危险。一般情况下,它都是固定在一个稳定的数值范围,如果回落非常大,或者该数值非常大,像是3.55后就会被kill掉,说明该应用程序的内存使用情况不佳,代码结构需要优化。**
Android stuido
打开之后的窗口如图:
查看进程中的线程:
查看内存信息:
文件管理,可以对文件进行导入导出,真机很多操作可能需要Root权限才能进行。模拟器的话可以模拟发短信,打电话,定位等:
ADB
1. 打开终端,进入上述目录,如下图所示:
2. 输入adb shell,打开adb命令行,如下图所示:
-
查看cpu使用情况:
输入命令:
top -m 10 -s cpu
(-m显示最大数量,-s 按指定行排序),
如下图所示:
1. 参数含义:
2. PID : progress identification,应用程序ID
3. S : 进程的状态,其中S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值是负数
4. #THR : 程序当前所用的线程数
5. VSS : Virtual Set Size虚拟耗用内存(包含共享库占用的内存)
6. RSS : Resident Set Size实际使用物理内存(包含共享库占用的内存)
7. PCY : 前台(fg)和后台(bg)进程
8. UID : User Identification,用户身份ID
9. Name : 应用程序名称
(注意第一列的pid,使用pid值可以查看当前程序的内存使用情况。)
-
查看指定程序内存使用情况:
输入命令:
dumpsys meminfo pid,
比如查看手机安装的360安全卫士,那么实际命令应该为:dumpsys meminfo 3253
如下图所示:
1. 参数含义:
2. dalvik : dalvik使用的内存
3. native : native堆上的内存,指C\C++堆的内存(android 3.0以后bitmap就是放在这儿)
4. other : 除了dalvik和native的内存,包含C\C++非堆内存······
5. Pss : 该内存指将共享内存按比例分配到使用了共享内存的进程
6. heap alloc : 已使用的内存
7. heap free : 空闲的内存
8. share dirty : 共享,但有不能被换页出去的内存
9. private dirty : 非共享,又不能被换页出去的内存(比如linux系统中为了提高分配内存速度而缓冲的小对象,即使你的进程已经退出,该内存也不会被释放)
5. 使用ctrl + c,退出adb命令行。