首页 > 其他分享 >由浅入深,聊聊 LeakCanary 的那些事

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

时间:2023-01-31 21:31:27浏览次数:32  
标签:由浅入深 泄漏 LeakCanary 对象 初始化 源码 内存 聊聊 监听

引言

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

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

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

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

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

LeakCanary 版本:2.10

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

基础概念

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

标签:由浅入深,泄漏,LeakCanary,对象,初始化,源码,内存,聊聊,监听
From: https://blog.51cto.com/petterp/6029381

相关文章

  • 聊聊如何利用apollo与druid整合实现数据源动态热切
    前言本文的素材来源与某次和朋友技术交流,当时朋友就跟我吐槽说apollo不如nacos好用,而且他们还因为apollo发生过一次线上事故。故事的背景大概是如下前阵子朋友部门的数......
  • 一起喝杯咖啡,聊聊关于Java的一些事情
    为什么很多公司选择不升级JDK版本,仍然使用JDK8?1.8和11,17是LTS版本,即提供长期支持。2. Oracle官网的Java8SE版本,是许多小公司和个人最常见的选择。使用这个版本是无比......
  • 以SQL SERVER和C#聊聊微软生态趋势中产品跨生态组合
    众所周知,老牌大厂微软intel都在裁人,国内短周期的互联网大厂(菊厂,狗厂,福报厂,开水团,鹅厂)更是如此。拿微软来说很多基础软件产品,SQLSERVER,C#开发语言,F#开发语言,Access,POWERBI......
  • 聊聊我与流式计算的故事
    聊聊流式计算吧,那一段经历于我而言很精彩,很有趣,想把这段经历分享给大家。1背景介绍2014年,我在艺龙旅行网促销团队负责红包系统。彼时,促销大战如火如荼,优惠券计算服......
  • 致 Tapdata 开源贡献者:聊聊 2022 年的进展和新一年的共建计划
    岁末年初,在开源领域刚埋下一颗生机勃勃的种子的Tapdata,想和正在关注我们的开发者,聊聊这一年的进展和新一年的共建计划。2022年4月,Tapdata宣布开源PDK(PluginDevelopmen......
  • 致 Tapdata 开源贡献者:聊聊 2022 年的进展和新一年的共建计划
    岁末年初,在开源领域刚埋下一颗生机勃勃的种子的Tapdata,想和正在关注我们的开发者,聊聊这一年的进展和新一年的共建计划。2022年4月,Tapdata宣布开源PDK(PluginDevelopment......
  • Flutter帧率监控 | 由浅入深,详解获取帧率的那些事
    前言做线上帧率监控上报时,少不了需要弄明白如何通过代码获取实时帧率的需求,这篇文章通过图解配合Flutter性能调试工具的方式一步步通俗易懂地让你明白获取帧率的基础知识,以......
  • Flutter帧率监控 | 由浅入深,详解获取帧率的那些事
    前言做线上帧率监控上报时,少不了需要弄明白如何通过代码获取实时帧率的需求,这篇文章通过图解配合Flutter性能调试工具的方式一步步通俗易懂地让你明白获取帧率的基础知识,......
  • 聊聊分布式缓存
    缓存作为磁盘以外的一种存储数据的方式,它有着比磁盘更快的存取效率,因此,可以有效提高系统的性能。在单体系统中,一般会用到本地缓存。但在分布式系统中,本地缓存就显得不够用......
  • 聊聊 AI 平台存储方案和选型
    最近火爆全网的ChatGPT再次带来一股AI热潮。过去的五年,AI快速发展并应用到很多领域中。作为一家存储企业,我们也感受到了AI行业的活力,和我们交流团队中,AI企业越来......