检测内存泄漏——LeakCanary的使用

原创 2015年11月19日 15:06:02

废话不多说...(这句..)  


一、在Android Studio 的build.gradle中加入

compile 'com.squareup.leakcanary:leakcanary-android:1.3.1'


二、在Application中添加如下代码:

//<!-- LeakCanary -->
public static RefWatcher getRefWatcher(Context context) {
    UILApplication application = (UILApplication) context.getApplicationContext();
    return application.refWatcher;
}
private RefWatcher refWatcher;
//<!-- LeakCanary -->
refWatcher = LeakCanary.install(this);


三、在应用初始Activity中添加

//<!-- LeakCanary -->
//应用初始Activity中加入如下两行代码
RefWatcher refWatcher = UILApplication.getRefWatcher(this);
refWatcher.watch(this);
//<!-- LeakCanary -->


四、在AndroidManifest.xml中添加配置

<!-- LeakCanary -->
<service
    android:name="com.squareup.leakcanary.internal.HeapAnalyzerService"
    android:enabled="false"
    android:process=":leakcanary" />
<service
    android:name="com.squareup.leakcanary.DisplayLeakService"
    android:enabled="false" />

<activity
    android:name="com.squareup.leakcanary.internal.DisplayLeakActivity"
    android:enabled="false"
    android:icon="@drawable/__leak_canary_icon"
    android:label="@string/__leak_canary_display_activity_label"
    android:taskAffinity="com.squareup.leakcanary"
    android:theme="@style/__LeakCanary.Base" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>
<!-- LeakCanary -->

一旦你的应用出现内存泄漏 就会弹出通知然后很直观的显示给你看,既可以分析处理了,当然还有很多高级的使用慢慢探索,这里只是简单的集成操作

Android内存泄露自动检测神器LeakCanary

经典的面试题: a、怎样在coding中避免内存泄露? b、怎样检测内存泄露? 这两个问题我想大部分android 职位面试时都会被问到吧。         怎样避免就不赘述了,网上很多答案。    ...
  • liuhongwei123888
  • liuhongwei123888
  • 2016年01月04日 11:30
  • 10449

LeakCanary源码分析第二讲-RefWatcher详解

LeakCanary源码分析第二讲-RefWatcher详解 如果你已经阅读了LeakCanary源码分析第一讲,那么LeakCanary的基本架构应该已经掌握了。本文将详细...
  • xiaoqietingyu
  • xiaoqietingyu
  • 2016年07月03日 17:23
  • 913

使用LeakCanary进行项目内存泄漏处理

1、添加依赖 debugCompile 'com.squareup.leakcanary:leakcanary-android:1.5' releaseCompile 'com.squareup.l...
  • sinat_35241409
  • sinat_35241409
  • 2017年04月11日 17:21
  • 319

内存泄露与分析

原文链接:http://www.jianshu.com/p/402225fce4b2# 为什么要做性能优化? 手机性能越来越好,不用纠结这些细微的性能? Andr...
  • gaiyindexingqiu
  • gaiyindexingqiu
  • 2017年05月02日 10:20
  • 534

Android中内存泄漏的原因及消除内存泄漏的方法

一.Java内存泄漏引起的原因:  简单的说就是该被释放的对象没有被释放,一直被某个或某些实例持有却不再使用导致GC不能回收。  1.资源未关闭  2.静态成员变量持有类的引用;  3.非静态内部类持...
  • wangyongyao1989
  • wangyongyao1989
  • 2017年05月15日 00:30
  • 222

内存泄漏检测利器--leakcanary实例试玩

以前,我们测试内存泄漏是这样的: 1.打开android studio的内存监控,重复进入退出模块然后看内存 2.利用mat的插件去比较分析 现在: 1.利用leakcanar...
  • Cloud_Huan
  • Cloud_Huan
  • 2016年05月15日 11:29
  • 1227

内存泄露检测工具LeakCanary

LeakCanary Android 和 Java 内存泄露检测。 “A small leak will sink a great ship.” - Benjamin Franklin 千里之...
  • walid1992
  • walid1992
  • 2016年01月06日 18:24
  • 1405

Android内存泄露自动检测神器LeakCanary

a、怎样在coding过程中避免内存泄露? b、怎样检测内存泄露?         怎样避免就不赘述了,网上很多答案。        工具呢,当然也有很多,比如DDMS、MAT等,但是怎样在我们...
  • Maiduoudo
  • Maiduoudo
  • 2017年12月18日 10:02
  • 177

LeakCanary 中文使用说明

LeakCanary Android 和 Java 内存泄露检测。 “A small leak will sink a great ship.” - Benjamin Franklin 千里之...
  • u012573920
  • u012573920
  • 2016年09月20日 15:47
  • 361

使用LeakCanary检测内存泄露

前言刚才在项目里使用LeakCanary检测出了一个使用NotificationBuilder导致的内存泄露,发现LeakCanary真是神器啊.这里转载一篇介绍LeakCanary使用的博客,里面的...
  • zinss26914
  • zinss26914
  • 2016年09月06日 14:26
  • 1565
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:检测内存泄漏——LeakCanary的使用
举报原因:
原因补充:

(最多只允许输入30个字)