当前位置: 首页 > 工具软件 > Wechat-Matrix > 使用案例 >

微信Matrix框架分析

叶允晨
2023-12-01

2019/7/19 看了资源监测机制 ResourceCanary

ResourceCanary的功能有两个:

  1. Activity泄露监测
  2. Bitmap冗余监测

基本原理是:

Activity泄露监测:

  1. 使用若引用包着avtivity实例
  2. 当activity onDestroy时,隔多时间主动执行以下GC,若activity没被回收,则认为是泄露
  3. 记录下泄露的activity并生成hprof文件
  4. 裁剪、打包保存hprof文件
  5. 分析hprof文件,当过第三方的haha算法,拿到activity的最短引用链

Bitmap冗余监测:

  1. 分析hprof文件,取得被gcroot引用到的bitmap列表
  2. 若是长度相同的bitmap,比较bitmap是否一致

备注:gcroot的种类包括:

  1. 活动的线程
  2. 局部变量和参数
  3. synchronized关键字引用的对象
  4. jniGlobalReference
  5. jniLocalReference
 类似资料: