现在我们换一种更清晰方便的方式:LeakCanary https://github.com/square/leakcanary

首先将LeakCanary绑在我们的app上 
build.gradle

dependencies{
dependencies {
debugCompile 'com.squareup.leakcanary:leakcanary-android:1.4-beta2'
releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.4-beta2'
testCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.4-beta2'
}
public class SunApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
Global.mContext = SunApplication.this.getApplicationContext();
initializeLeakDetection();
} private void initializeLeakDetection() {
if (BuildConfig.DEBUG) {
LeakCanary.install(this);
}
}
}

Manifest 添加权限WRITE_EXTERNAL_STORAGE、不然会发生错误、如下代码 
android 6.0以上另外获取权限、详情请见我的博文 Android 6.0 最简单的权限获取方法 RxPermition EasyPermition

  <!--Required by Debug.startMethodTracing() -->
<!--LeakCanary need this Unable to resume activity
{com.rvitemtouch.sun.sundagger2application/com.squareup.leakcanary.internal.DisplayLeakActivity}:
java.lang.UnsupportedOperationException: Could not create leak directory
/storage/emulated//Download/leakcanary-com.rvitemtouch.sun.sundagger2application-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

安装好了、运行app、继续将之前写的(Android AndroidStudio MAT LeakCanary 内存分析之 AndroidStudio 内存泄漏分析 Memory Monitor

Activity反复翻转屏幕、导致内存泄漏

出现内存泄漏提示

Leaks 会伴随我们的app一块install、那么打开leaks、等待一会

找到我们定位的泄漏 打开


就能看出详细的链式结构、上面写的很明白了、正如之前我们所料 
是Memory..Activity的引用被Runnable占用了

AndroidStudio MAT LeakCanary 内存分析之 LeakCanary的更多相关文章

  1. MAT eclipse内存分析工具

      启动的时候提示: Failed to load the JNIshared library 解决办法: 查看配置文件:MemoryAnalyzer.ini --launcher.librarypl ...

  2. Android 内存分析工具 MAT(Memory Analyzer Tool)

    如果使用DDMS确实发现了我们的程序中存在内存泄漏,那又如何定位到具体出现问题的代码片段,最终找到问题所在呢?如果从头到尾的分析代码逻辑,那肯定 会把人逼疯,特别是在维护别人写的代码的时候.这里介绍一 ...

  3. 五、jdk工具之jmap(java memory map)、 mat之四--结合mat对内存泄露的分析、jhat之二--结合jmap生成的dump结果在浏览器上展示

    目录 一.jdk工具之jps(JVM Process Status Tools)命令使用 二.jdk命令之javah命令(C Header and Stub File Generator) 三.jdk ...

  4. Eclipse MAT和jvisualvm分析内存溢出

    ---------------------------------------------mac os版------------------------------------------------ ...

  5. Android 内存泄漏分析利器——leakcanary

    LeakCanary Android 和 Java 内存泄露检测. “A small leak will sink a great ship.” - Benjamin Franklin 千里之堤, 毁 ...

  6. LeakCanary 内存泄漏 监测 性能优化 简介 原理 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  7. LeakCanary原理分析

    参考文档 http://blog.csdn.net/wyfei021/article/details/46506521http://vjson.com/wordpress/leakcanary%e6% ...

  8. 转: android 内存检测工具 LeakCanary 说明

    http://www.liaohuqiu.net/cn/posts/leak-canary-read-me/ LeakCanary 中文使用说明 10 May 2015 LeakCanary Andr ...

  9. LeakCanary内存泄漏检测工具使用步骤

    LeakCanary内存检测工具使用步骤: 第一步,进入app目录下的build.gradle,在最下面找到dependencies{},里面添加如下三行语句: debugCompile 'com.s ...

随机推荐

  1. NGINX 代理以及 HTTPS (一)

    一. Nginx 安装 和基础代理配置 假如 启动nginx 出现这个错误,可能是 iis服务被打开了,80端口被占用了. 需要如下操作: 用Nginx 配置一个test.com 的代理名称.配置ho ...

  2. C#中如何获得两个日期之间的天数差

    DateTime d1; DateTime d2; //自己去赋值吧 int days = (d1 - d2).Days;//天数差 label1.Text = "2012-1-1 15:3 ...

  3. JS对浏览器Cookie的操作,查询、设置以及删除

    JavaScript是运行在客户端的脚本,因此一般是不能够设置Session的,因为Session是运行在服务器端的. 而cookie是运行在客户端的,所以可以用JS来设置cookie. 假设有这样一 ...

  4. node.js状态码

    100——客户必须继续发出请求101——客户要求服务器根据请求转换HTTP协议版本200——交易成功201——提示知道新文件的URL202——接受和处理.但处理未完成203——返回信息不确定或不完整2 ...

  5. stat---显示文件的状态信息

    stat命令用于显示文件的状态信息.stat命令的输出信息比ls命令的输出信息要更详细. 语法 stat(选项)(参数) 选项 -L:支持符号连接: -f:显示文件系统状态而非文件状态: -t:以简洁 ...

  6. Flask--Python中常用的Web框架之一

    Web框架 什么是框架? 协助开发者快速开发web应程序的一套功能代码 开发者只需要按照框架约定要求,在指定位置写上自己的业务逻辑代码即可 为什么要用web框架? 使用web框架的主要目的就是避免重复 ...

  7. 彻底解决Linux索引节点(inode)占用率高的告警

    今天邮箱里发现有一封某服务器inode使用率发生告警的邮件 登录到服务器上df -i查看,发现/路径下91%,磁盘使用率却不高,猜测可能是某个目录下的小文件过多,进而造成inode占用率过高,但不清楚 ...

  8. swift 编译提前定义 --不知道怎么定义,可是能够#if

    var v:Int; #if _COND//不知道怎么定义.可是能够#if v = ; #else ; #endif println(v);//2

  9. HDU 5375 Gray code (简单dp)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5375 题面: Gray code Time Limit: 2000/1000 MS (Java/Oth ...

  10. Hadoop-2.6.0上的C的API訪问HDFS

    在通过Hadoop-2.6.0的C的API訪问HDFS的时候,编译和执行出现了不少问题,花费了几天的时间,上网查了好多的资料,最终还是把问题给攻克了 參考文献:http://m.blog.csdn.n ...