Android 如何用profiler检查内存泄漏

本文介绍了如何使用Android Studio 3.4中的Profiler工具检测内存泄漏。通过创建一个可能导致内存泄漏的代码示例,然后在Profiler中观察内存使用情况,通过手动GC和分析by package,发现内存泄漏的Main2Activity实例。通过Instance和Reference信息,定位到内部类Thread的引用导致问题。此外,还提到了使用MAT工具进行进一步分析,转换hprof文件并找出内存泄漏的源头。
摘要由CSDN通过智能技术生成

工具版本:
AndroidStudio版本3.4
gradle版本5.1.1

先上一段能造成内存泄露的代码,退出Activity的时候,内存类Thread一直持有Main2Activity对象的引用。

public class Main2Activity extends AppCompatActivity {

    private boolean flag = true;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);

        new Thread(){
            @Override
            public void run() {
                while (flag){
                    try {
                        Thread.sleep(1000);
                    }catch (Exception e){
                        e.printStackTrace();
                    }
                }
            }
        }.start();
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        //flag = false;
    }
}

如何操作Profiler查看内存泄漏,首先选中要检测的项目,如下图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值