美文网首页
Monitor Memory: AndroidStudio自带内

Monitor Memory: AndroidStudio自带内

作者: 程序狮 | 来源:发表于2021-05-26 14:40 被阅读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文件。

    相关文章

      网友评论

          本文标题:Monitor Memory: AndroidStudio自带内

          本文链接:https://www.haomeiwen.com/subject/skuksltx.html