Android内存泄漏之集合类

Android内存泄漏基本可以分为以下四大类:
1、集合类泄漏
2、单例/静态变量造成的内存泄漏
3、匿名内部类/非静态内部类
4、资源未关闭造成的内存泄漏

今天举例一个集合类泄漏

集合类添加元素后,仍引用着集合元素对象,导致该集合中的元素对象无法被回收,从而导致内存泄露。
dump下堆转储文件


image
image.png

fragments->model包下,可以看到TimeLine有5个实例,占用内存。选中TimeLine这个集合数组,点击Instance View窗口:
可以看到这个实例在哪里被引用-->OperationTaobaoImp这个类持有它。


image

来看一下这个类里:


image.png

清空数组,timeLines.clear(),再dump一下看到已经没有了。
fragments下已经看不到model这个包了,因为TimeLine的实例不在了。


image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。