首页
›
移动端与Android应用开发
›
040-网络缓存工程卡顿耗电调优
›
《主线程阻塞排查与ANR预防指南》
VIP20
本课程属于:040-网络缓存工程卡顿耗电调优
移动端与Android应用开发 · 共 20 门相关课程,组合学习更完整。
查看所属VIP全部课程 →
← 返回所属目录
咨询 / 购买
主线程阻塞排查与ANR预防指南
共计 30 章节
点击此处阅读海量试读课程:100+行业、1000+细分领域
01
ANR基础
什么是ANR · ANR的类型(输入无响应 · 广播超时
ANR
什么是
02
主线程本质
Android主线程(UI线程)的职… · Handler与Looper机制 · MessageQueue模型
主线程本质
Android
03
阻塞根源
耗时操作(IO · 网络 · 数据库
阻塞根源
IO
04
ANR触发流程
系统如何检测ANR · ANR对话框弹出时机 · Service Timeout与Br…
ANR
触发流程
05
ANR日志分析
traces.txt文件结构 · 寻找“main”线程堆栈 · 关键字段解读(waiting on
ANR
日志分析
06
Systrace工具
Systrace基本用法 · 生成trace.html · 识别主线程被阻塞的帧与Slice
Systrace
工具
07
CPU Profiler
Android Studio CPU… · 查看线程状态 · 定位长时间运行的方法
CPU
Profiler
08
TraceView(已废弃)与Perfetto
替代方案Perfetto介绍 · 在Android 10+上的使用
TraceView
Perfetto
09
StrictMode
严苛模式启用策略 · 检测磁盘IO · 网络访问
StrictMode
严苛模式启用策略
10
BlockCanary
开源库BlockCanary原理 · 接入与配置 · 自动监控UI线程卡顿
BlockCanary
开源库
11
ANR-WatchDog
ANR-WatchDog库原理 · 如何接收ANR回调并上报堆栈
ANR-WatchDog
库原理
12
常用阻塞场景——网络请求
在主线程直接执行OkHttp/Htt… · 解决方案(协程 · 回调
常用阻塞场景
网络请求
13
常用阻塞场景——IO操作
SharedPreferences的… · SQLite在主线程读写 · 使用Room自动切换线程
IO
常用阻塞场景
14
常用阻塞场景——位图解码
BitmapFactory.deco… · 使用Glide或Picasso异步加…
常用阻塞场景
位图解码
15
常用阻塞场景——序列化
Gson/Json在主线程解析大数据… · 使用Moshi或Kotlin Ser…
常用阻塞场景
序列化
16
锁竞争与死锁
synchronized与Reent… · Lock&Condition导致的A…
锁竞争
死锁
17
Binder调用阻塞
跨进程IPC调用在主线程等待返回 · ContentProvider查询 · bindService回调
Binder
调用阻塞
18
View层级过深
复杂的布局测量/布局/绘制 · 嵌套RecyclerView · 使用ConstraintLayout…
View
层级过深
19
动画与属性动画
ObjectAnimator在主线程… · 使用Choreographer或Vi…
动画
属性动画
20
垃圾回收(GC)
GC时所有线程暂停(STW) · GC日志分析 · 减少对象创建
GC
垃圾回收
21
异步化方案——HandlerThread
HandlerThread使用场景 · 与主线程通信的正确姿势
HandlerThrea…
异步化方案
22
异步化方案——Kotlin协程
Dispatchers.Main与D… · withContext的使用
Kotlin
异步化方案
23
异步化方案——RxJava
subscribeOn与observ… · 避免在subscribe里写耗时代码
RxJava
异步化方案
24
异步化方案——WorkManager
后台任务的最佳选择 · 链式任务与约束条件
WorkManager
异步化方案
25
ANR预防——监控体系
自定义ANR监控(多线程定时器+后台… · 结合Firebase Crashly…
ANR
预防
26
ANR预防——启动优化
Application内初始化耗时 · 使用IdleHandler延迟初始化 · 启动闪屏与预加载
ANR
预防
27
ANR预防——列表滑动优化
RecyclerView的DiffU… · ViewHolder复用 · 异步预加载
ANR
预防
28
ANR实战案例1
直播间点赞动画导致主线程卡顿——优化…
ANR
实战案例1
29
ANR实战案例2
数据库批量插入引起ANR——优化方案… · WAL模式)
ANR
实战案例2
30
ANR总结与最佳实践
常见规避原则 · 预生产环境压测 · 线上ANR告警阈值设置
ANR
最佳实践
所属VIP或分类
同VIP:Android内存优化实战技巧
同VIP:Android卡顿堆栈定位与调优实战
同VIP:Android性能调优工具链使用技巧