赞
踩
leakCanary 是一款非常常见的内存检测工具,leakCanary 2.0 基本原理同以往版本 差异不大,2.0版本有了自己的hprof文件解析器,不在依赖Haha,语言从 java切换到kotlin。
1、原理:contentprovider的oncreate()在application到oncreate之前执行,因此在app进程拉起时会自动执行 AppWatcherInstaller的oncreate生命周期,利用android的这种机制进行自动初始化
(注意! contentProvider的oncreate方法在主线程中调用,因此一定不要执行耗时操作,不然会拖慢app的启动速度)
2、leakCananry自动检测步骤:
1>检测可能泄漏的对象
2>堆快照,生成hprof文件
3>分析hprof文件
4>对泄漏进行分类
3、自动检测的对象包括
·销毁的activity实例
·销毁的Fragment实例
·销毁的view实例
·清除的viewModel实例
另外LeakCanary也会检测 AppWatcher 监听的对象:
AppWatcher.objectWatcher.watch(myDetachedView, "View was detached")
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。