位置: 编程技术 - 正文

接入LeakCanary检测内存泄露(接入hpool)

编辑:rootadmin
接入LeakCanary检测内存泄露前几天square在Github上发布了他们的内存泄漏检测库,LeakCanary,短短几天star已经接近,研究了一下后,发现其对QZone也很有价&#;。原来我们看到一个toast弹出内存泄露,但是也看不出什么相关信息,所以只能直接忽略。一个内存泄露既需要测试同学dump HPROF再用MAT和Finder分析提单,开发同学接到单后又要在去分析HPROF看是哪里HOLD住了对象导致内存泄露,对之前没接触过这方面工作的人还是需要一定学习成本,且比较浪费时间成本。很多潜在的问题可能没有覆盖到,而一直藏在那里消耗内存。通过LeakCanary,我们可以降低测试和修复成本,并发现更多的潜在内存泄露。这里不多介绍接入细节,我们简单看下原理和效果。【原理】LeakCanary通过square自家的HAHA来自动化分析Android heap dumps,内部基于MAT, vshor/mat,AndroMAT来做Java和Android特定的heap分析,亮点则是其将需要人工分析的事情做到了完全自动化,并给出能帮助快速定位修复内存泄露的信息。在Application中使用LeakCanary.install(this)后,LeakCanary就会自动install一个ActivityRefWatcher来自动化检测activity是否在onDestroy后有泄露。具体步骤大致是1. 自动把activity加入到KeyedWeakReference2. 在background线程中,检查onDestroy后reference是否被清除,且没有触发gc3. 如果reference没有被清除,则dump heap到一个hprof文件并保存到app文件系统中4. 在一个单独进程中启动HeapAnalyzerService,HeapAnalyzer使用HAHA来分析heap dump。5. HeapAnalyzer在heap dump中根据reference key找到KeyedWeakReference。6. HeapAnalyzer计算出到GC Roots的最短强引用路径来判断是否存在泄露,然后build出造成这个泄露的引用链。7. 结果被传回来app进程的DisplayLeakService,并展示一个泄露的notification。square称从用了LeakCanary后,发现并修复了很多他们app中的内存泄露,而且找到了一些Android SDK中的泄露,最终减少了%因为OOM错误导致的crash。【可深入的点】由于该工具是基于Activity、Fragment的onDestroy触发的,且有些泄露并不是必现的,所以考虑可以基于自动化测试来做完整的覆盖,并批量输出内存泄露的信息,借助其输出的log,也可以方便定位出泄露的原因。

推荐整理分享接入LeakCanary检测内存泄露(接入hpool),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:接入方式lan是什么意思,接入方式lan,接入方式lan,接入认证检测失败是怎么回事,接入认证检测,接入认证检测,接入认证检测,接入认证检测,内容如对您有帮助,希望把文章链接给更多的朋友!

接入LeakCanary检测内存泄露(接入hpool)

版权声明:本文为博主原创文章,未经博主允许不得转载。

实现类似Tumblr的Title Bar跟随滑动渐变的效果 轻博客应用Tumblr中,在看他人的主页时候,可以看到顶部titlebar的一个很酷炫的体验,当在最顶端,整个titlebar的背景是透明的,而上面的字体和图标是

沉浸式状态栏技术方案及其中的一些坑 1.沉浸式状态栏沉浸式状态栏是android4.4开始支持的一个feature,在软件打开的时候通知栏和软件顶部颜色融为一体,这样不仅可以使软件和系统本身更加

音频焦点 (audio focus)(二) 什么叫音频焦点(audiofocus)?android系统是一个多任务操作系统,因此同一时刻允许许多任务同时工作。但是这对音频类应用来说是个挑战,因为如果多

标签: 接入hpool

本文链接地址:https://www.jiuchutong.com/biancheng/371062.html 转载请保留说明!

上一篇:SparseArray 简介(sparsomycin)

下一篇:沉浸式状态栏技术方案及其中的一些坑(安卓沉浸式状态栏框架)

  • 个人所得税申诉已受理多久出结果
  • 补做前几年税审对报税税务评级有什么影响?
  • 城建税要减进项税吗
  • 企业所得税税负率怎么算出来的
  • 收客户刷卡手续费时客户不愿意缴费,如何处理
  • 以前年度损益结转到未分配利润
  • 代扣代缴个人所得税有滞纳金吗
  • 坏账准备转回的条件
  • 去年的电费可以在今年入账分录
  • 营业收入比销售商品收到的现金少
  • 电子发票可以更改备注吗
  • 购进货物未取得增值税专用发票可以抵扣进项税额吗
  • 有限责任公司相关规定
  • 房产税从租计征12%是年税率吗
  • 汇总记账凭证核算组织程序的缺点主要有
  • 小企业销售商品因批量原因给予客户的商业折扣
  • 应收账款属于非流动资产吗
  • 小规模建筑公司预缴增值税
  • 购买完货物又退回怎么办
  • 营改增后11
  • 工程成本哪些可以抵扣
  • 个体工商户该如何交税
  • 小规模免了增值税怎么办
  • 存货暂估入账的分录
  • 法人变更了之前的支票还能进账吗?
  • 营改增后哪些费用可以抵扣
  • 信息服务费发票范围
  • 财务红冲是什么意思
  • 企业所得税汇算清缴扣除标准2023
  • downloadplus.exe是什么进程 作用是什么 downloadplus进程是安全的吗
  • win71
  • 多收不用退的货物怎么办
  • 预付下年度广告费会计分录
  • 一般纳税人怎么交税
  • php获取文件名
  • ChatGPT强化学习大杀器——近端策略优化(PPO)
  • 前端开发做什么副业
  • 租房开的发票收的税怎么做账?
  • 进项税加计抵减最新政策2023
  • 个人所得税专项附加扣除赡养老人
  • 不开增值税发票的销售收入报税操作流程是?
  • 销售车位应怎么交税
  • 工程项目怎么挣钱
  • sql中聚合函数的用法
  • 职工福利费的会计处理
  • 金蝶低值易耗品报废操作
  • 什么是现金什么是现金流
  • 资产处置损益属于什么会计要素
  • 企业所得税汇算表
  • 负债类会计科目新增科目包括
  • 可抵扣的进项税额要减去进项转出吗
  • 施工仪器的主要类别
  • 基建待摊费用如何分摊
  • 公司给员工买房子如何做账
  • 其他债权投资有哪些科目
  • 委托方和受委托方的法律关系
  • 外购商品科目设置
  • 小规模纳税人季报网上申报流程
  • sql外连接
  • mysql的join有几种
  • win81蓝屏重启故障
  • window10桌面有白色框
  • 轻松跨越英语关在线阅读
  • 安装win8系统需要什么条件
  • ubuntu16.04怎么改成中文
  • 苹果电脑注释
  • billmoney是什么意思
  • linux中qq怎么添加快捷键启动功能?
  • win7小技巧
  • Linux运维工程师工作内容
  • linux中统计字符命令
  • math和maths哪个对
  • 可以查杀病毒的软件
  • AngularJS中controller控制器继承的使用方法
  • lru缓存机制是什么
  • 你必须知道的最新婚姻法
  • bat脚本%1
  • 用javascript
  • Android StateMachine解析( 1 )
  • 落实与什么动词搭配
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设