AndroidStudio通过Profiler查找内存泄漏

Posted ShouCeng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AndroidStudio通过Profiler查找内存泄漏相关的知识,希望对你有一定的参考价值。

除了LeakCanary和mat可以帮我们排查内存泄漏,Profiler也可以,功能强大,可以进行内存、绘制、网络、电量的分析。

通过view-》Tool Window -》Profiler打开工具,选择对应的进程,选择MEMORY

然后点击Recorder按钮:


然后筛选,就可以查看结果了。

勾选 show nearest Gc root only,然后查看非weakreference的引用(weakreference是不会导致内存泄漏的),往下就能找自己项目里写的代码,一般此处就是内存泄漏点。该案例泄漏:

public class NewHomeScrollingActivity extends AppCompatActivity 
    private ScrollView scrollView;
    public  static Object leakkkkobject;
    @Override
    protected void onCreate(Bundle savedInstanceState) 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_new_home_scrolling);
        leakkkkobject = this;
    

以上是关于AndroidStudio通过Profiler查找内存泄漏的主要内容,如果未能解决你的问题,请参考以下文章

AndroidStudio通过Profiler查找内存泄漏

android studio 3.0 中的 Kitkat 设备/google glass 不支持 Android profiler

AndroidStudio编译出现Caused by: java.lang.ArrayIndexOutOfBoundsException: 4其中一种的原因

android studio 3.0 android profiler怎么看

Android studio 4.1.1上Memory Profiler的使用

Unity Profiler Memory