安卓 内存 泄漏 工具 LeakCanary 使用

韩梦飞沙 yue31313 韩亚飞 han_meng_fei_sha [email protected]

LeakCanary是Square开源了一个内存泄露自动探测神器 。这是项目的github仓库地址:https://github.com/square/leakcanary  。使用非常简单,在build.gradle中引入包依赖:

 dependencies {
   debugCompile ‘com.squareup.leakcanary:leakcanary-android:1.5‘
   releaseCompile ‘com.squareup.leakcanary:leakcanary-android-no-op:1.5‘
   testCompile ‘com.squareup.leakcanary:leakcanary-android-no-op:1.5‘
 }

在Application中的onCreate方法中增加初始化代码:

if (LeakCanary.isInAnalyzerProcess(this)) {    // This process is dedicated to LeakCanary for    // heap analysis.    // You should not init your app in this process.    return;}LeakCanary.install(this);

集成后什么都不用做,按照正常测试,当有内存泄漏发生后,应用会通过系统通知栏发出通知,点击通知就可以进入查看内存泄漏的具体信息。在这里举个实践中的例子。把LeakCanary集成到项目中后,等App启动后一会,系统通知到了,点击通知,跳转到泄漏的详情页面进行查看。

时间: 2024-12-06 09:46:56

安卓 内存 泄漏 工具 LeakCanary 使用的相关文章

linux实用技巧:检测内存泄漏工具Valgrind

1.Valgrind简介 1.在我们编写C/C++的时候,最常见的错误之一就是内存泄露,这样的问题其实跟程序员的编程习惯密不可分.如果你在申请内存空间之后能够马上在合适的位置释放内存.会极大程度的避免内存泄漏的情况.但是人非圣贤,孰能无过.有时候我们确实忘记释放内存而导致了比较严重的错误,所以这个时候我们需要借助valgrind这个工具来判断内存泄漏. Valgrind 是一款 Linux下(支持 x86.x86_64和ppc32)程序的内存调试工具,它可以对编译后的二进制程序进行内存使用监测(

VS2015 定位内存泄漏工具vld

介绍一款在vs2015开发环境定位内存泄漏工具:Visual Leak Detector ,具体的使用方法如下: 1.  安装vld-2.5-setup.exe (下载链接地址后面会给出),安装过程会出现以下界面,所以复选框均 选中. 图1 vld安装显示界面 2. 利用 vs2015新建一个控制台程序,代码如下图所示: 图2 示例代码片段 如图2所示,只要将vld头文件引入到工程即可.vld.路径以及vld动态库VS2015可自动找到,不需要指定路径. 程序运行的结果如图3所示: 原文地址:h

Android内存泄漏检测-LeakCanary

square/leakcanary udacity/Sunshine-Version-2 添加LeakCanary依赖包 在主模块app下的build.gradle下添加如下依赖: debugCompile 'com.squareup.leakcanary:leakcanary-android:1.3.1' releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.3.1' 开启LeakCanary 添加Applicat

Visual Leak Detector内存泄漏工具

Visual Leak Detector我们常用的C/C++内存泄露检查工具,同样在VS编译工具下都能使用该工具.不过在不同的版本上,设置有所不同.Visual Studio 2010下工作良好需要2.2版本及以上.最新版本我们可以在Codeplex.com上面下载.下载链接:http://vld.codeplex.com/ 设置步骤: 1.打开连接,我们选择下载最新的稳定版本vld-2.3-setup.exe 2.运行vld-2.3-setup.exe,按提示完成安装,记住安装的路径,在这我将

安卓 内存泄漏 MemoryAnalyzer

韩梦飞沙 yue31313 韩亚飞 han_meng_fei_sha [email protected] 需要 获取 root 权限 步骤: 1,使用eclipse 自带的 DDMS 工具分析各线程的内存使用情况,如下图所示 Heap视图界面会定时刷新,在对应用的不断的操作过程中就可以看到内存使用的变化. 怎样判断当前进程是否有内存泄漏呢? 这里需要注意一个值:VM Heap页面中部有一个data object选项,即数据对象,也就是我们的程序中大量存在的类类型的对象. 在data object

Valgrind 内存泄漏工具

Valgrind 是一款 Linux下(支持 x86.x86_64和ppc32)程序的内存调试工具,它可以对编译后的二进制程序进行内存使用监测(C语言中的malloc和free,以及C++中的new和delete),找出内存泄漏问题. Valgrind 中包含的 Memcheck 工具可以检查以下的程序错误: 使用未初始化的内存 (Use of uninitialised memory) 使用已经释放了的内存 (Reading/writing memory after it has been f

Linux下内存泄漏工具

原文链接:http://www.cnblogs.com/guochaoxxl/p/6970090.html 概述 内存泄漏(memory leak)指由于疏忽或错误造成程序未能释放已经不再使用的内存的情况,在大型的.复杂的应用程序中,内存泄漏是常见的问题.当以前分配的一片内存不再需要使用或无法访问时,但是却并没有释放它,这时就出现了内存泄漏.尽管优秀的编程实践可以确保最少的泄漏,但是根据经验,当使用大量的函数对相同的内存块进行处理时,很可能会出现内存泄漏. 内存泄露可以分为以下几类: 1. 常发

内存泄漏工具VLD1.0_要点分析

0X01 关闭FPO优化 // Frame pointer omission (FPO) optimization should be turned off for this // entire file. The release VLD libs don't include FPO debug information, so FPO // optimization will interfere with stack walking. #pragma optimize ("y", of

malloc钩子和内存泄漏工具mtrace、Valgrind

一:malloc钩子函数 static void* (* old_malloc_hook) (size_t,const void *);static void (* old_free_hook)(void *,const void *);static void my_init_hook(void);static void* my_malloc_hook(size_t,const void*);static void my_free_hook(void*,const void *); static