工具:
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
宽高相同,图片大小不同,占用内存是否相同?——> 相同
宽高不同,大小相同,占用内存是否相同———>不同
测试