Monitor Memory: AndroidStudio自带内

2021-05-26  本文已影响0人  程序狮

MAT检测内存泄漏

打开Profiler

image.png image.png image.png image.png

此时不断切换Activity,往返进入,出来,然后点击生成文件

image.png

此时生成的文件还不能直接在mat应用上打开,需要转换一下

打开sdk下面的sdk/platform-tools/文件夹下的hprof-conv工具

hprof-conv -z /Users/fangruijiao/Documents/内存Folder文件分析/memory-2.hprof newMory.hprof

然后打开mat应用

mat下载地址:http://www.eclipse.org/mat/downloads.php

image.png

打开刚才的文件,此时点击HIstogram

image.png image.png

看到MemroyShake有4个对象

image.png

右击类,查看所有强引用

image.png

我们看到有4个强引用,以及是ValueAnimator类中的callback强引用了,我们在代码中当结束Activity地 时候释放就可以了,操作完之后,再执行上面的操作,再看一下结果

image.png

还是与4个,但是就是内存泄漏了吗?我们来看一下强引用

image.png

此时已经没有强引用了,说明只是GC还没执行,还没有回收而已

如果有很多页面,那是否要每个页面都执行上述操作?这需要大量的操作,有没有更好的办法进行一次性检测?有,可以进行内存快照的比对,如何操作?

首次进入主页面时dump一次内存快照,然后不断进出各个页面,再次返回到主页面时又dump一次内存快照,然后比对这两次的hprof文件。

上一篇 下一篇

猜你喜欢

热点阅读