Android 线上 OOM 的排查过程

本文讲述了作者王晨彦排查Android线上OOM问题的过程。通过分析堆栈、使用Android Studio的内存分析工具,发现Bitmap对象在内存中无法被回收,导致内存泄露。进一步追踪,发现问题是由于Coil库在页面销毁后仍持有Bitmap,更新库到最新版解决了问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作者:王晨彦

开篇

一天,后台统计到线上有大量 OOM 崩溃,小王收到老板的紧急指令,立即排查!

小王心想,这还不简单,待我看看崩溃堆栈,分分钟解决。

于是小王不慌不忙的打开崩溃后台,一看傻眼了,同样的 OOM,却有几十种不同的堆栈,大到创建 View,小到 new 一个 String

小王差点骂了出来:这 OOM 不讲武德啊!

骂完之后,还是得解决问题啊,否则怎么面对老板啊

心路历程

正郁闷着,小王突然想起曾经看过性能优化的文章,里面介绍了 Android Studio 中集成的 Profiler 可以分析 APP 内存

既然堆栈看不出什么问题,那就只能照着文章的方法,碰碰运气了

于是小王点开了 IDE 底部那个毫不起眼的「Profiler」面板,映入眼帘的是

小王一眼就看到了 MEMORY 栏,这不就是内存使用嘛

嗯,数据倒是挺全,可是怎么知道哪里导致 OOM 了啊,小王又开始怀疑人生了…

“放着不动肯定看不出什么啊,内存是动态申请的嘛”

小王心想,既然这么多 OOM,那么肯定是 APP 内的常用

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值