android 内存分析工具leakcanary接入

随着APP访问量增加,内存优化变得至关重要。LeakCanary是一款方便的内存分析工具,可以帮助开发者快速定位内存泄露问题。本文介绍了如何简单接入LeakCanary:只需在build.gradle中添加依赖,并通过一个实例展示了如何利用LeakCanary发现并解决由Context引起的内存泄露问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在你的app访问量越来越大时,很多问题就会暴露出来,就要进行优化了,比如内存优化,要想我们自己去排查的话,还是有点小麻烦的,现在不管什么功能,除了自身的业务都有对应的框架给你使用,使很多事情变的简单化,比如内存泄露来说,今天就可以通过leakcanary接入来帮你排查,一般只要找到问题所在,改起来都不是什么困难事,就怕你找不到问题所在,现在讲下leakcanary接入,非常简单,简单的让你不敢相信。

第一步:

在你的build.gradle文件下添加如下,第一个是说只有在你非正式包下进行

 debugCompile 'com.squareup.leakcanary:leakcanary-android:1.3'
  releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.3'

第二步:

package com.leakcanary;
import android.app.Application;
import com.squareup.leakcanary.LeakCanary;
import com.squareup.leakcanary.RefWatcher;
/**
 * Created by admin on 2017/9/25.
 */
public class MyApplication  extends Application {
        private RefWatcher mRefWatcher;
        @Override
        public void onCreate () {
        super.onCreate();
        mRefWatcher = LeakCanary.install(this);
       }
}
在Application中进行配置.


演示

现在写一个单例引起的内存泄露问题,然后让LeakCanary帮你排查

package com.leakcanary;
import android.content.Context;
/**
 * Created by admin on 2017/9/25.
 */
public class CommonUtils {
    private static CommonUtils INSTANCE = null;
    private Context context;
    private CommonUtils(Context context){
            this.context = context;
    }
    public static CommonUtils getInstance(Context context){
        if(null==INSTANCE){
            INSTANCE = new CommonUtils(context);
        }
        return INSTANCE;
    }
}
在MainActivity中进行

package com.leakcanary;
import android.app.Activity;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        CommonUtils.getInstance(this);
    }
}
运行起来后 对屏幕进行旋转:然后在桌面点击Leaks,当然也许其他项目也会使用,这样会导致桌面很多Leaks,没关系,点击打开包名就知道;


这个很明确的告诉你由于Context引起的内存泄露,至于怎么解决很简单使用Appliaction就行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值