作者:王晨彦
开篇
一天,后台统计到线上有大量 OOM 崩溃,小王收到老板的紧急指令,立即排查!
小王心想,这还不简单,待我看看崩溃堆栈,分分钟解决。
于是小王不慌不忙的打开崩溃后台,一看傻眼了,同样的 OOM,却有几十种不同的堆栈,大到创建 View,小到 new 一个 String。
小王差点骂了出来:这 OOM 不讲武德啊!
骂完之后,还是得解决问题啊,否则怎么面对老板啊
心路历程
正郁闷着,小王突然想起曾经看过性能优化的文章,里面介绍了 Android Studio 中集成的 Profiler 可以分析 APP 内存
既然堆栈看不出什么问题,那就只能照着文章的方法,碰碰运气了
于是小王点开了 IDE 底部那个毫不起眼的「Profiler」面板,映入眼帘的是

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

嗯,数据倒是挺全,可是怎么知道哪里导致 OOM 了啊,小王又开始怀疑人生了…
“放着不动肯定看不出什么啊,内存是动态申请的嘛”
小王心想,既然这么多 OOM,那么肯定是 APP 内的常用

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

被折叠的 条评论
为什么被折叠?



