Android 内存泄漏总结(二)

来源:互联网 发布:土耳其政变 知乎 编辑:程序博客网 时间:2024/05/22 11:35

内存泄漏分析总结:
1.使用 android studio自带的memory,左下角有个memory Usage 点击之后生成.txt文件可以查看当前内存消息,最下面 有当前内存有几个activity。
2.在monitors里面dump一份hprof文件,analyzer task里面点击运行,可以看到当前内存中“有泄漏”的activity。这里的泄漏有可能并不是真正意义的有泄漏,因为即使一个没有泄漏的activity(比如 activity里面就一个textview)当退出finish掉之后(ondestory已经调用)gcc也不会立即去回收这个activity,所以这个正常的activity也会在内存里待一段时间,这个时候生成的hprof通过点击analyzer task运行来分析,这个activity也会被误认为是内存泄漏(这里只是垃圾回收器没有及时回收而已)。
3.那通过hprof怎么判断是否是发生了内存泄漏?
在可能发生内存泄漏的地方多次动作触发可能的内存泄漏(比如多次进出activity)发现内存memory只涨不跌,这样在通过analyzer task去看当前泄漏的activity,通常泄漏的activity会有多个(>2)activity实例,分析是那些地方持有了activity,在去结合代码分析。

0 0