首页
›
移动端与Android应用开发
›
034-Android架构组件内存泄漏
›
《ViewModel持有Activity场景泄漏解析》
VIP20
本课程属于:034-Android架构组件内存泄漏
移动端与Android应用开发 · 共 20 门相关课程,组合学习更完整。
查看所属VIP全部课程 →
← 返回所属目录
咨询 / 购买
ViewModel持有Activity场景泄漏解析
共计 30 章节
点击此处阅读海量试读课程:100+行业、1000+细分领域
01
认识ViewModel持有Activity泄漏
泄漏定义 · 典型场景 · 危害范围
ViewModel
Activity
02
泄漏现象识别
内存增长 · GC频繁 · OOM预警
泄漏现象识别
内存增长
03
常用排查工具介绍
Android Profiler · LeakCanary · MAT
常用排查工具介绍
Android
04
泄漏根因分析框架
引用链分类 · 强引用与软引用 · GC Root概念
泄漏根因分析框架
引用链分类
05
ViewModel生命周期与Activity关联
onCleared时机 · ViewModelStore · Scope限制
ViewModel
Activity
06
常见泄漏类型一
ViewModel通过匿名内部类/回…
常见泄漏类型一
ViewModel
07
常见泄漏类型二
ViewModel持有View引用(…
常见泄漏类型二
ViewModel
08
常见泄漏类型三
ViewModel持有Context…
常见泄漏类型三
ViewModel
09
常见泄漏类型四
ViewModel持有Broadca… · ServiceConnection
常见泄漏类型四
ViewModel
10
常见泄漏类型五
ViewModel中开启协程/线程未…
常见泄漏类型五
ViewModel
11
数据采集
使用LeakCanary抓取泄漏转储…
数据采集
LeakCanary
12
数据采集
使用Android Profiler…
数据采集
Android
13
数据采集
通过adb shell dumpsy…
数据采集
adb
14
数据采集
导出.hprof并使用MAT分析
数据采集
hprof
15
原因定位
解析引用链 · 找到GC Root到Activity…
原因定位
解析引用链
16
原因定位
使用MAT的“Merge Short…
原因定位
MAT
17
原因定位
区分泄漏与可回收内存的边界
原因定位
区分泄漏
18
修复动作一
将匿名内部类改为静态内部类+弱引用
修复动作一
将匿名内部类改为…
19
修复动作二
移除ViewModel中对View的… · 改用LiveData/Flow
修复动作二
ViewModel
20
修复动作三
使用getApplication()…
修复动作三
getApplicati…
21
修复动作四
在ViewModel.onClear… · 关闭协程
修复动作四
ViewModel.on…
22
修复动作五
使用lifecycleScope或v…
修复动作五
lifecycleSco…
23
修复动作六
避免ViewModel中持有传入的接…
修复动作六
ViewModel
24
复测验证
使用LeakCanary确认泄漏已消…
复测验证
LeakCanary
25
复测验证
多次横竖屏切换后检查内存堆栈
复测验证
多次横竖屏切换后…
26
复测验证
使用adb shell top观察内…
复测验证
adb
27
预防方案
编码规范制定ViewModel引用限…
预防方案
ViewModel
28
预防方案
引入LeakCanary到所有开发调…
预防方案
LeakCanary
29
预防方案
Code Review关注点与静态扫…
预防方案
Code
30
总结与故障树
完整排查决策树 · 常见修复决策模板
故障树
完整排查决策树
所属VIP或分类
同VIP:Android-Profiler堆转储分析技巧
同VIP:BroadcastReceiver注册泄漏诊断与修复
同VIP:CI流水线集成LeakCanary实践