文章预览
背景 随着微信 Android 客户端的代码规模越来越庞大,依赖人工 Review 来确保代码没有 泄漏 或 冗余 问题,虽然还是最保险的办法,但代码增长的速度总是大于 Review 的速度,完全靠人力介入变得越来越吃力,且依赖线上反馈进行事后排查也非常被动,为此我们从最为常见的 Activity 泄漏和 Bitmap 对象冗余入手提出了研发 ResourceCanary 模块的计划。 作为 Matrix 的一个子模块,ResourceCanary 将把原本难以发现的 Activity 泄漏和重复创建的冗余 Bitmap 暴露出来,并提供引用链等信息帮助排查这些问题的根源,以提高微信客户端的代码质量。 设计目标 在引入任何自动分析工具之前,对于 Activity 泄漏,一般都是在自动化测试阶段监控内存占用,一旦超过预期,则发起一次 GC 后进行 Dump
………………………………