分类分类
大小:6.80 MB更新:2017/06/01
类别:编程辅助系统:Winll

Android LeakCanary是一个用于用来检测Android下内存泄漏的插件,它能帮助攻城狮在开发阶段直观快捷的检查出内存泄露的错误和漏洞,有需要的就来IT猫扑下载吧!
LeakCanary 是一个开源的在debug版本中检测内存泄漏的java库,能够帮助攻城狮进行检测内存泄漏的插件。
你被概率性的 OOM 困扰么?
有时候,OOM 像幽灵一样,挥之不去,可真想把它揪出来时,又捉之不着。
或许,是时候用 LeakCanary 来诊断一下了。
它是一个用来检查 Android 下内存泄漏的开源库,这篇文章主要介绍其用法、架构和其背后的实现原理。
如果有一个工具能自动完成这些事情,甚至在发生 OOM 之前,就把内存泄漏报告给你,那是多么美好的一件事情啊。
LeakCanary 就是用来干这个事情的。
在测试你的 App 时,如果发生了内存泄漏,状态栏上会有通知告诉你。
logcat 上也会有相应的 log 通知你。
一些对象有着有限的生命周期。当这些对象所要做的事情完成了,我们希望他们会被回收掉。
但是如果有一系列对这个对象的引用,那么在我们期待这个对象生命周期结束的时候被收回的时候,它是不会被回收的。
它还会占用内存,这就造成了内存泄露。
持续累加,内存很快被耗尽。
比如,当 Activity.onDestroy 被调用之后,activity 以及它涉及到的 view 和相关的 bitmap 都应该被回收。
但是,如果有一个后台线程持有这个 activity 的引用,那么 activity 对应的内存就不能被回收。这最终将会导致内存耗尽,然后因为 OOM 而 crash。
排查内存泄露是一个全手工的过程,这在 Raizlabs 的 Wrangling Dalvik 系列文章中有详细描述。
以下几个关键步骤:
1.通过 Bugsnag, Crashlytics 或者 Developer Console 等统计平台,了解 OutOfMemoryError 情况。
2.重现问题。为了重现问题,机型非常重要,因为一些问题只在特定的设备上会出现。
为了找到特定的机型,你需要想尽一切办法,你可能需要去买,去借,甚至去偷。
当然,为了确定复现步骤,你需要一遍一遍地去尝试。
一切都是非常原始和粗暴的。
3.在发生内存泄露的时候,把内存 Dump 出来。
4.然后,你需要在 MAT 或者 YourKit 之类的内存分析工具中反复查看,找到那些原本该被回收掉的对象。
5.计算这个对象到 GC roots 的最短强引用路径。
6.确定引用路径中的哪个引用是不该有的,然后修复问题。
很复杂对吧?
如果有一个类库能在发生 OOM 之前把这些事情全部都搞定,然后你只要修复这些问题就好了,岂不妙哉!
LeakCanary 是一个检测内存泄露的开源类库。
你可以在 debug 包种轻松检测内存泄露。
先看一个例子:

创建一个RefWatcher,监控对象引用情况。

当发现有内存泄露的时候,你会看到一个很漂亮的 leak trace 报告:
GC ROOT static Docker.container
references Box.hiddenCat
leaks Cat instance
我们知道,你很忙,每天都有一大堆需求。所以我们把这个事情弄得很简单,你只需要添加一行代码就行了。然后 LeakCanary 就会自动侦测 activity 的内存泄露了。

然后你会在通知栏看到这样很漂亮的一个界面:

这样,就万事俱备了! 在 debug build 中,如果检测到某个 activity 有内存泄露,LeakCanary 就是自动地显示一个通知。
1.RefWatcher.watch() 创建一个 KeyedWeakReference 到要被监控的对象。
2.然后在后台线程检查引用是否被清除,如果没有,调用GC。
3.如果引用还是未被清除,把 heap 内存 dump 到 APP 对应的文件系统中的一个 .hprof 文件中。
4.在另外一个进程中的 HeapAnalyzerService 有一个 HeapAnalyzer 使用HAHA 解析这个文件。
5.得益于唯一的 reference key, HeapAnalyzer 找到 KeyedWeakReference,定位内存泄露。
6.HeapAnalyzer 计算 到 GC roots 的最短强引用路径,并确定是否是泄露。如果是的话,建立导致泄露的引用链。
7.引用链传递到 APP 进程中的 DisplayLeakService, 并以通知的形式展示出来。
使用 LeakCanary 之后,我们修复了我们 APP 中相当多的内存泄露。我们甚至发现了 Android SDK 中的一些内存泄露问题。
结果是惊艳的,我们减少了 94% 的由 OOM 导致的 crash。
如果你也想消灭 OOM crash,那还犹豫什么,赶快使用 LeakCanary
javax.servlet-api-4.0.1.jar编程辅助277.00 KB免费版
详情Trae电脑版编程辅助189.00 MB2.10.0
详情mysql-connector-java-5.1.17-bin.jar(MySQL JDBC驱动包)编程辅助744.00 KB免费版
详情Github star管理器免费版编程辅助58.90 MBv2.1.4 官方最新版
详情fastreport中文版(报表控件)编程辅助2.30 MBv5.6 官方最新版_含授权码/使用教程
详情桌面开发环境Docker Desktop编程辅助485.29 MBv3.2.2.61853 pc官方版
详情VOFA+软件32位/64位编程辅助48.90 MBv1.3.10 官方版
详情Apache poi-ooxml-schemas-3.8.jar编程辅助3.60 MB免费版
详情x64dbg辅助管理器编程辅助32.32 MBv2022.02.25 汉化优化安装版
详情SDK Platform Tools for windows编程辅助6.04 MBv33.0.1 官方最新版
详情WinCVS项目管理工具编程辅助7.25 MBv1.3 中文版
详情RCX-Studio(雅马哈编程软件)编程辅助9.80 MBv1.1.0 官方版
详情Device Tree设备堆栈查看工具编程辅助1.88 MBv2.3 免费版
详情gradle-3.3-bin.zip正式版编程辅助67.00 MB官方版
详情.NET代码保护工具.NET Reactor编程辅助7.27 MBv5.9.8.0 中文汉化版
详情Qt Designer汉化版编程辅助49.76 MB中文版
详情Apache POI 3.14编程辅助10.00 MB免费版
详情jquery头像上传剪裁插件cropper编程辅助1.30 MB官方版
详情fastdfs-client-java maven(工具类封装)编程辅助86.00 KB官方版
详情易语言vc98linker编程辅助10.80 MB破解版
详情Android Studio中文版(支持win10)编程辅助293.00 MBv2.1.2 Preview1 稳定版
详情Visual Assist X(vc编程辅助工具)编程辅助40.90 MBv10.9.2399 中文破解版
详情Protege知识图谱本体建构编程辅助38.40 MBv5.5 安装版
详情jQuery thickbox js 弹出框编程辅助5.00 KBv1.11.3 官方版
详情Android DPI Calculator(安卓dpi计算器)编程辅助119.00 KB免费版
详情node.js入门经典原版pdf 附源代码编程辅助22.30 MBpdf中文扫描版
详情git for windows 64位编程辅助48.00 MBv2.32.0.2 官方最新版
详情log4j-1.2.8.jar编程辅助312.00 KB官方免费版
详情gradle-2.10-all.zip 国内镜像编程辅助66.00 MB正式版
详情jQuery3.0 api文档编程辅助1.90 MBchm中文版
详情itextpdf.jar(java生成pdf jar包)编程辅助1.37 MBv2.0.8 官方版
详情maven httpclient-cache-4.2.5.jar编程辅助381.00 KB官网版
详情json-lib-2.4-jdk15及其全部依赖jar包编程辅助1.44 MB官方版
详情log4j-1.2.16.jar.zip编程辅助428.00 KB官方免费版
详情AleegoCrackMaster(allegro破戒大师)编程辅助51.00 MBv2.1.6 最新绿色版
详情jstl-1.2.jar包编程辅助378.00 KB免费版
详情黑月编译器插件(支持易语言5.3x)编程辅助8.14 MBv3.51 正式版
详情大席开发工具集免费版编程辅助3.00 KBv1.3 官方版
详情jQuery myFocus插件(焦点图)编程辅助806.00 KB官方版
详情水晶报表for vs2015(CRforVS_13_0_17)编程辅助253.00 MB官方版
详情点击查看更多
RxLib for D5-XE10.2 2.75 Update 1.0.17编程辅助3.90 MB
详情RedisClient(Redis客户端GUI工具)编程辅助28.59 MBv1.5.0 绿色中文版
详情odac for D7-XE6编程辅助11.70 MBv9.3.08 官方版
详情RCX-Studio(雅马哈编程软件)编程辅助9.80 MBv1.1.0 官方版
详情x64dbg调试工具编程辅助32.20 MBv2022.08.08 绿色汉化版
详情微软.NET Framework编程辅助73.40 MBv4.7.2.0 官方完整版
详情水晶报表for vs2015(CRforVS_13_0_17)编程辅助253.00 MB官方版
详情php+mysql代码生成工具编程辅助30.10 MBv1.0 绿色免费版
详情数控宏程序自动生成器编程辅助468.00 KBv3.0 免费版
详情org.apache.poi jar包编程辅助28.65 MBv3.17 官方最新版
详情mysql-connector-java-5.1.17-bin.jar(MySQL JDBC驱动包)编程辅助744.00 KB免费版
详情git for windows 64位编程辅助48.00 MBv2.32.0.2 官方最新版
详情sap crystal reports runtime engine for .net编程辅助78.00 MBv64bit 13.0.9 官方免费版
详情VOFA+软件32位/64位编程辅助48.90 MBv1.3.10 官方版
详情jQuery EasyUI编程辅助1.09 MB1.7.0 官方API中文版
详情log4j-1.2.17.jar.zip编程辅助434.00 KB官方免费版
详情Spire.Doc for Java编程辅助81.80 MBv2.7.3 免费版
详情javax.servlet-api-4.0.1.jar编程辅助277.00 KB免费版
详情jstl-1.2.jar包编程辅助378.00 KB免费版
详情fastreport中文版(报表控件)编程辅助2.30 MBv5.6 官方最新版_含授权码/使用教程
详情json-lib-2.4-jdk15及其全部依赖jar包编程辅助1.44 MB官方版
详情WinCHM Pro(chm文件制作)编程辅助6.17 MBv5.48 汉化版
详情SDK Platform Tools for windows编程辅助6.04 MBv33.0.1 官方最新版
详情crystal reports 2013(水晶报表for vs2013)编程辅助232.00 MB最新免费版
详情大漠插件中文汉化模块源码编程辅助6.66 MB免费版
详情Qt Designer汉化版编程辅助49.76 MB中文版
详情httpcore4.4.4.jar包编程辅助3.00 KB官方版
详情commons-collections4-4.0.jar编程辅助532.00 KB官方免费版
详情宏程序电脑版自动生成软件编程辅助304.00 KB最新免费版
详情databaseeditor汉化版编程辅助251.00 KBv4.0 绿色版
详情FastoRedis(Redis GUI管理器)编程辅助15.67 MBv2.4.0 官方版
详情ADB调试工具包安装器编程辅助436.00 KBv11.9 官方完整版
详情Apache HttpClient 4.5.3 jar编程辅助700.00 KB免费版
详情org.dom4j jar包编程辅助292.00 KB
详情javax.mail 1.5.6.jar编程辅助350.00 KB官网免费版
详情Android Studio 3.4中文补丁编程辅助83.25 MB免费版
详情Apache commons-codec-1.3.jar包编程辅助50.00 KB免费版
详情Python编程和调试工具(ActivePython)编程辅助56.00 MBv3.6.0.3600 官方版
详情Apache POI-3.15.jar编程辅助14.00 MB免费版
详情jQuery API 3.1.0手册chm编程辅助1.90 MB中文版
详情点击查看更多
雨田静态分析系统(c语言静态分析工具)编程辅助3.15 MBv1.5.0 免费版
详情jQuery手风琴图片相册特效插件编程辅助427.00 KB正式版
详情RegexBuddy(正则表达式处理器)编程辅助18.00 MBv4.8.2 中文免安装版
详情activation.jar.zip编程辅助76.00 KB完整免费版
详情mysql-connector-java-5.1.17-bin.jar(MySQL JDBC驱动包)编程辅助744.00 KB免费版
详情Diffinity代码对比工具编程辅助373.00 KBv0.8.7 最新版
详情sublime emmet插件编程辅助224.00 KB官方版
详情OSDLL串口调试助手编程辅助177.00 KBv20.11.19.0 绿色版
详情android材质设计图标生成器(material design icon generator plugin)编程辅助31.90 MB最新版
详情mysql connector java 5.1.16.jar(mysql数据库JDBC驱动)编程辅助743.00 KB免费版
详情commons-codec-1.5.jar编程辅助72.00 KB免费版
详情LightProxy(阿里巴巴抓包工具)编程辅助93.00 MBv1.1.40 官方版
详情sublime text 3插件包编程辅助35.90 MBv1.0 绿色免费版
详情jQuery图片图集幻灯片特效插件编程辅助1.14 MB正式版
详情Android Studio 3.4中文补丁编程辅助83.25 MB免费版
详情Android Holo Colors Generator(Android布局组件)编程辅助710.00 KB最新版
详情log4j-1.2.17.jar.zip编程辅助434.00 KB官方免费版
详情git源代码管理工具编程辅助44.00 MBv2.29.2.2 官方免费版
详情smali2javaui(smali文件转java)编程辅助6.51 MBv1.0.0.558 绿色版
详情jQuery弹出层插件fDialog编程辅助44.00 KBv1.0 正式版
详情bsql hacker(SQL自动注入工具)编程辅助2.82 MBv0.9.0.9 中文安装版(附中文补丁)
详情RegEx Builder(正则表达式测试工具)编程辅助203.00 KBv2.0 绿色版
详情vb6.0编程助手编程辅助1.10 MBv6.0 绿色免费版
详情fastdfs-client-java maven(工具类封装)编程辅助86.00 KB官方版
详情ChkBugReport开源工具(检查Android错误)编程辅助677.00 MBv0.4.185 官方版
详情quartz.jar(包括doc)编程辅助4.41 MBv2.2.1 完整版
详情adb命令库编程辅助9.00 KBv3.0 官方版
详情restorator2007附授权码编程辅助3.27 MB中文绿色版
详情idea插件gsonformat.jar编程辅助1.74 MB最新免费版_附使用方法
详情hibernate-4.0.0.M1.jar编程辅助16.00 KB免费版
详情CSS3/jQuery3D万花筒旋转动画特效插件编程辅助104.00 KB正式版
详情indexer cli5.1.1.jar源码包编程辅助5.50 MB免费版
详情ooxml-schemas-1.1.jar源码包编程辅助10.12 MB官方免费版
详情Shielden通用机器码解码工具编程辅助285.00 KBv2.40 绿色版
详情冷风编码转换器编程辅助445.00 KBv1.0 免费版
详情51单片机测量风扇转速程序编程辅助39.00 KB
详情dex method counts编程辅助81.00 KB
详情notepad nppftp插件(NppFTP)编程辅助1.18 MBv0.26.3 汉化版
详情httpclient4.5.jar编程辅助3.00 MB免费版
详情Element UI框架中文版编程辅助2.76 MBv2.13.2 最新版
详情点击查看更多







































































