shark是leakcanary 2.0之后引入的hprof分析库,用于替代效率低下的haha库,
在leakcanary中所处的位置如下图所示,包括shark-hprof,shark-graph,shark,shark-android四个模块
shark-hprof用于读取hprof文件,解析hprof,里边定义了hprof数据格式,和java的类,对象,基本数据类型一致
shark-graph 用于索引hprof,找到HeapClass HeapInstance HeapObjectArray HeapPrimitiveArray
shark用于过滤泄漏对象,构建GC引用链,找到泄漏路径
shark-android里 AndroidObjectInspectors用于检查一个对象是否泄漏及其泄漏,不泄漏原因。AndroidReferenceMatchers用户过滤掉系统或者library泄漏。
leakcanary源码分析: