由浅入深,详解 LeakCanary 的那些事

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了由浅入深,详解 LeakCanary 的那些事相关的知识,希望对你有一定的参考价值。

引言

关于内存泄漏,Android 开发的小伙伴应该都再熟悉不过了,比如最常见的静态类间接持有了某个 Activity 对象,又比如某个组件库的订阅在页面销毁时没有及时清理等等,这些情况下多数时都会造成内存泄漏,从而对我们App的 ​​流畅度​​​ 造成影响,更有甚者造成了 ​​OOM​​ 的情况。

在现代化开发以及多人协作的背景下,如何能做到开发中快速的监测内存泄漏,从而尽可能杜绝上述问题,此时就显得更加尤为重要。

LeakCanary 就是一个可以帮助开发者快速排查上述问题的工具,而几乎所有的android开发者都曾使用过这个工具,其背后的设计也是各厂自研相应组件的借鉴思想。

而理解 LeakCanary 背后的设计思想与原理,也更是每个应用层开发者所必不可少的技能点。

故此,本篇将以最新的视角,与你一起用力一瞥 LeakCanary

LeakCanary 版本:2.10

本篇定位 中等,将从背景到使用方式,再到源码解析,尽可能全面、易懂。

基础概念

在开始之前,我们还是要解释一些常见的基础问题,以便更好的理解本篇。

由浅入深,聊聊 LeakCanary 的那些事

引言

关于内存泄漏,Android 开发的小伙伴应该都再熟悉不过了,比如最常见的静态类间接持有了某个 Activity 对象,又比如某个组件库的订阅在页面销毁时没有及时清理等等,这些情况下多数时都会造成内存泄漏,从而对我们App的 ​​流畅度​​ 造成影响,更有甚者造成了 ​​OOM​​ 的情况。

在现代化开发以及多人协作的背景下,如何能做到开发中快速的监测内存泄漏,从而尽可能杜绝上述问题,此时就显得更加尤为重要。

LeakCanary 就是一个可以帮助开发者快速排查上述问题的工具,几乎所有的Android开发者都曾使用过这个工具,其背后的设计也是各厂自研相应组件的借鉴思想。

而理解 LeakCanary 背后的设计思想与原理,也更是每个应用层开发者所必不可少的技能点。

故此,本篇将以最新的视角,与你一起用力一瞥 LeakCanary

LeakCanary 版本:2.10

本篇定位 中等,将从背景到使用方式,再到源码解析,尽可能全面、易懂。

基础概念

在开始之前,我们还是要解释一些常见的基础问题,以便更好的理解本篇。

以上是关于由浅入深,详解 LeakCanary 的那些事的主要内容,如果未能解决你的问题,请参考以下文章

由浅入深,聊聊 LeakCanary 的那些事

Flutter帧率监控 | 由浅入深,详解获取帧率的那些事

由浅入深,聊聊OkHttp的那些事(很长,很细节)

EntityFramework Core解决并发详解

阿里HotFix2.0升级详解 畅谈热修复领域那些事

AndroidRxjava2 Flowable详解与背压那些事