环境:eclipse,ddms,mat(内存分析工具)
参考文献:http://blog.youkuaiyun.com/wangchun8926/article/details/8550745
下载地址:http://www.eclipse.org/mat/downloads.php
使用步骤
1.运行手机端程序,进入待测试内存状态页面
2.使用eclipse ddms 获取当前内存快照,并保存1.hprof文件
选择应用,点击箭头按钮
3.操作应用到功能页面并返回待测试页面(不要gc)重复2操作保存2.hprof文件
4.重复3保存3.hprof文件
5.命令行将android的hprof转换成java的hprof文件(使用的android sdk Tools目录下的hprof工具)
命令:D:\lwh\Software\adt-bundle-windows-x86-20130219\sdk\tools\hprof-conv.exe eBest.mobile.android3.hprof 3.hprof
6.运行mat.exe打开3个hprof文件
7.在histogram点击右键打开菜单添加到对比列表中
8.将3个文件的histogram添加到对比列表,然后点击感叹号对比
9出现分析页面
分析内存泄漏
1.objects列表表示个数,shallow heap表示堆内存
2.第一列表示java的数据类
3.Regex栏输入查找自定义类
4.通过分析哪一个类增加过快,就可以判断为该类没有释放,导致内存溢出
ps:使用findbug可以静态检测代码例如流没关闭,游标未关闭等导致的内存溢出