环境:eclipseddmsmat(内存分析工具)

 

参考文献:http://blog.csdn.net/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.命令行将androidhprof转换成javahprof文件(使用的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打开3hprof文件

 

7.在histogram点击右键打开菜单添加到对比列表中

 

8.将3个文件的histogram添加到对比列表,然后点击感叹号对比

 

9出现分析页面

 

 

分析内存泄漏

1.objects列表表示个数,shallow heap表示堆内存

2.第一列表示java的数据类

3.Regex栏输入查找自定义类

 

4.通过分析哪一个类增加过快,就可以判断为该类没有释放,导致内存溢出


 ps:使用findbug可以静态检测代码例如流没关闭,游标未关闭等导致的内存溢出


更多相关文章

  1. Android(安卓)Studio的使用总结
  2. Android利用ViewFlipper实现屏幕切换动画效果
  3. android MVC中如何在在controller中进行页面跳转(到其他Activity
  4. 安全卫士笔试 第一天
  5. Okhttp的简单介绍和使用(一)
  6. ffmpeg入门教程之Android使用FFmpeg so(封装格式转换)
  7. Android(安卓)JNI 开发简单介绍
  8. 在Ubuntu 16.04上为树莓派(RaspBerry Pi 3)编译Android(安卓)7(No
  9. Android中Dialog自带蒙层适配状态栏

随机推荐

  1. c语言的基本结构是什么
  2. #ifndef和#define的区别
  3. c语言源程序的最小单位是什么
  4. c语言编写strcpy函数的方法
  5. c语言conio.h是什么意思
  6. c++怎么将字符串转数字
  7. c语言中==和=的区别
  8. const在c++中的意思
  9. static在c语言中是什么意思
  10. c语言switch case用法详解