转自http://longshuai2007.blog.163.com/blog/static/1420944142013715359223/
查看内存消耗
1.进入adb shell ;
2.输入dumpsys meminfo (PID或者是包名),出现如下图;
参数含义:
dalvik:dalvik使用的内存
native:native堆上的内存,指C\C++堆的内存(android 3.0以后bitmap就是放在这儿)
other:除了dalvik和native的内存,包含C\C++非堆内存······
Pss:该内存指将共享内存按比例分配到使用了共享内存的进程
allocated:已使用的内存
free:空闲的内存
private dirty:非共享,又不能被换页出去的内存(比如linux系统中为了提高分配内存速度而缓冲的小对象,即使你的进程已经退出,该内存也不会被释放)
share dirty:共享,但有不能被换页出去的内存
分析内存
1.通过DDMS,选择想要查看的程序进程,点击update heap;
2.在heap界面中查看内存消耗情况
3.想要进一步分析,需要借助于MAT插件;
4.选中程序进程点击dump HPROF file图标,弹出如下图,一般选择第一个就可以了;
.
5.出现如下图,点击leak suspect,mat会列出占内存最大的的几个对象;