adb命令查看内存使用情况:
adb shell top //查看设备cpu和内存占用情况
adb shell top -m 6// 查看内存占用前八的程序
adb shell top -n 1//刷新一次内存信息,返回
adb shell top -m 6 -n 1//查看某一时刻,内存占用前八的程序
内存说明
VSS - Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)
RSS - Resident Set Size 实际使用物理内存(包含共享库占用的内存)
PSS - Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存)
USS - Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存)
一般来说内存占用大小有如下规律:VSS >= RSS >= PSS >= USS
查看单个应用内存占用量
#单个应用的最大内存限制
adb shell "getprop|grep heapgrowthlimit"
#应用启动后分配的初始内存
adb shell "getprop|grep dalvik.vm.heapstartsize"
#单个java虚拟机的最大内存限制
adb shell "getprop|grep dalvik.vm.heapsize"
Android内存采集的三种方式
procrank命令获取只管,但有些手机可能没有procrank
3.使用adb dumpsys 命令
adb是一个非常强大的工具,使用adb查看应用程序内存使用情况可按如下格式在命令行里查看内存使用情况:
adb shell dumpsys meminfo <package_name>
其中,package_name 也可以换成程序的pid,pid可以通过 adb shell top | grep app_name 来查找,下图是某个程序的内存使用情况:
重点关注如下几个字段:
(1) Native/Dalvik 的 Heap 信息
具体在上面的第一行和第二行,它分别给出的是JNI层和Java层的内存分配情况,如果发现这个值一直增长,则代表程序可能出现了内存泄漏。
(2) Total 的 PSS 信息
这个值就是你的应用真正占据的内存大小,通过这个信息,你可以轻松判别手机中哪些程序占内存比较大了。