Android-初探LeakCanary内存泄露神器

由于第一次在写文章,如有写的不好的地方,望海涵。

以前总是需要什么就去找什么,自己一直没有总结的强烈意识,导致很多时候以前做过的东西,现在需要,又得花时间去查询。所以现在慢慢养成一种习惯同时为别人提供一种便利也是不错的方式。

这一篇讲解的是leakcanary,因为我们在开发编码过程中不可避免的会遇到一些内存泄露的情况,虽然有一些地方是我们故意为之,但还是有很多是在我们编写代码中产生的,但是只看代码是很难查起,所以在此介绍一款相对较好,也使用比较多的一款内存分析工具--leakcanary

对于这款工具的介绍各位就自己去网络上找一些资料看看吧,在此就不做过多介绍了,另外对于在AS上的使用,直接从github导入就能使用,具体操作可以去网上看看,在此就不做过多介绍,补充leakcanary在AS使用地址:LeakCanary介绍

在此介绍的是leakcanary在eclipse中的使用,引用工程可以在下面地址进行下载:LeakCanary依赖工程

1、添加依赖工程leakcanary-android

由于leackcanary-android工程依赖于leakcanary-analyzer,而leakcanary-analyzer工程又依赖于leakcanary-watch。所以三个工程包都需要添加


Android-初探LeakCanary内存泄露神器_第1张图片

2、在application 初始化leakcanary

import com.squareup.leakcanary.LeakCanary;  
  
import android.app.Application;  
  
public class MyApplication extends Application{  
      
    @Override  
    public void onCreate() {  
        // TODO Auto-generated method stub  
        LeakCanary.install(this);  
        super.onCreate();  
    }  
}  

3、在AndroidMainfest.xml 中配置

   
          
          
  
          
          
      
  
      
    

4、这个时候直接运行测试工程,不停的跳Activity,出现内存泄漏,这个时候要等待一会哦,,你就会发现有通知栏,然后点击就可以看到内存泄漏堆栈关系了

当然了,也可以在BaseActivity或者BaseFragment的onDestroy里面对这个类进行监控。

/**
     * 初始化内存泄露监测  applicaton里面的代码
     */
    private void initRefWatcher() {
        this.refWatcher = LeakCanary.install(this);
    }

    //BaseActivity或者BaseFragment的代码
    @Override
    protected void onDestroy() {
        super.onDestroy();
        RefWatcher  refWatcher = MentorNowApplication.getRefWatcher(this);
        refWatcher.watch(this);
    }

类似资料Memory Leak检测神器--LeakCanary初探

你可能感兴趣的:(Android-初探LeakCanary内存泄露神器)