博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android内存优化(四)LeakCanary使用详解
阅读量:6256 次
发布时间:2019-06-22

本文共 563 字,大约阅读时间需要 1 分钟。

LeakCanary是检测App内存泄露的工具, 内存泄露是Android开发中常见的问题, 使用程序的稳定性下降.

 

LeakCanary 的机制如下:

  1. RefWatcher.watch() 会以监控对象来创建一个 KeyedWeakReference 弱引用对象
  2. AndroidWatchExecutor 的后台线程里,来检查弱引用已经被清除了,如果没被清除,则执行一次 GC
  3. 如果弱引用对象仍然没有被清除,说明内存泄漏了,系统就导出 hprof 文件,保存在 app 的文件系统目录下
  4. HeapAnalyzerService 启动一个单独的进程,使用 HeapAnalyzer 来分析 hprof 文件。它使用另外一个开源库 HAHA。
  5. HeapAnalyzer 通过查找 KeyedWeakReference 弱引用对象来查找内在泄漏
  6. HeapAnalyzer 计算 KeyedWeakReference 所引用对象的最短强引用路径,来分析内存泄漏,并且构建出对象引用链出来。
  7. 内存泄漏信息送回给 DisplayLeakService,它是运行在 app 进程里的一个服务。然后在设备通知栏显示内存泄漏信息。

转载于:https://www.cnblogs.com/ganchuanpu/p/9322087.html

你可能感兴趣的文章
Java DynamoDB 增加、删除、修改、查询
查看>>
【转】linux下 postgres的一些操作总结
查看>>
不写for也能选中checkbox!
查看>>
PCIE_DMA:xapp1052学习笔记
查看>>
[原译]接口VS 委托
查看>>
EF 一对一、一对多、多对多配置语句小记
查看>>
cacti
查看>>
Android studio教程:[1] 创建app项目
查看>>
matplotlib图像中文乱码(python3.6)
查看>>
PKUSC2018游记
查看>>
css
查看>>
解决linux 乌班图下使用eclipse创建类和其他各种操作进程卡死的问题的一种可能方法...
查看>>
Java规则引擎及JSR-94[转]
查看>>
【c学习-13】
查看>>
转:最全列表: 80 多个 Linux 系统管理员必备的监控工具
查看>>
给报表增加页眉
查看>>
Mysql配置参数说明
查看>>
python ----字符串基础练习题30道
查看>>
K 班1-7,alpha,beta 作业成绩汇总
查看>>
uva-10879-因数分解
查看>>