Android 内存泄露分析

工具:

Android Studio
MAT

Hprof转换:hprof-conv dump.hprof converted-dump.hprof

参考文章:
http://www.jianshu.com/p/216b03c22bb8

https://www.ibm.com/developerworks/cn/opensource/os-cn-ecl-ma/

http://www.androidchina.net/1963.html

解决方法1

 如果在BaseActivity基础类中使用了集合来管理所有Activity,请确保Activity在finish时,要从集合中删除。

使用Dominator Tree:

会将所有内存中的对象按大小进行排序,并且我们可以分析对象之间的引用结构。

使用Histogram:

可以列出内存中每个对象的名字、数量以及大小。

项目内存优化:

1       图片占用内存计算:
                     http://blog.csdn.net/hudashi/article/details/7856519
           http://blog.csdn.net/zhaokaiqiang1992/article/details/49787117

2    ServiceGenerator持有Activity对象,改成getApplicationContext
3    Picasso持有Activity对象,改成getApplicationContext
4   图片占用内存———>测试对比分析:
          设备:魅族4 Pro

   宽高相同,图片大小不同,占用内存是否相同?——> 相同 
   宽高不同,大小相同,占用内存是否相同———>不同

测试

参考资料:
https://www.ibm.com/developerworks/community/blogs/738b7897-cd38-4f24-9f05-48dd69116837/entry/leak_suspect_report_in_memory_analyzer14?lang=en

官方文档:
http://help.eclipse.org/mars/index.jsp?topic=%2Forg.eclipse.mat.ui.help%2Ftasks%2Frunningleaksuspectreport.html

你可能感兴趣的:(Android其他总结,android,内存泄露,MAT)