内存数据获取
l 通过系统文件dumpsys来获取,可看到所有进程的内存信息,命令如下:
adb shell dumpsys meminfo
查看指定进程的内存信息,命令如下:
adb shell dumpsys meminfo $pakagename or $Pid
如:adbshell dumpsys meminfo3641
这里得到的信息非常多,重点关注如下几个字段:
(1) Native/Dalvik 的 Heap 信息
它分别给出的是JNI层和Java层的内存分配情况,如果发现这个值一直增长,则代表程序可能出现了内存泄漏。
Dalvik Heap就是常说的堆内存,Dalvik Heap不能超过最大限制;超过单个程序内存的最大限制时,就可能出现OOM(内存溢出)。
查看内存最大限制命令:
cd /system
cat build.prop | grep heapgrowthlimit
如上:dalvik.vm.heapgrowthlimit=192m,即单个程序内存最大限制为192M。
(2)Total 的 PSS 信息
PSS- Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存),这个值就是你的应用真正占据的内存大小,通过这个信息,你可以轻松判别手机中哪些程序占内存比较大。