首页
›
移动端与Android应用开发
›
023-移动性能稳定性APM治理
›
《ANR分析实战:主线程堆栈与阻塞定位》
VIP20
本课程属于:023-移动性能稳定性APM治理
移动端与Android应用开发 · 共 20 门相关课程,组合学习更完整。
查看所属VIP全部课程 →
← 返回所属目录
咨询 / 购买
ANR分析实战:主线程堆栈与阻塞定位
共计 30 章节
点击此处阅读海量试读课程:100+行业、1000+细分领域
01
ANR现象识别
应用无响应弹窗 · 系统日志关键字 · 用户反馈特征
ANR
现象识别
02
ANR类型分类
输入派发超时 · 广播超时 · 服务超时
ANR
类型分类
03
主线程堆栈获取方法
adb shell dumpsys · bugreport · DropBox
主线程堆栈获取方…
adb
04
堆栈文件结构解读
CPU采样 · 线程列表 · 锁信息
堆栈文件结构解读
CPU
05
主线程消息循环机制
Looper · MessageQueue · Handler的阻塞点
主线程消息循环机…
Looper
06
UI绘制任务卡顿
View.onDraw · Measure · Layout中的耗时操作
UI
绘制任务卡顿
07
同步锁导致的ANR
synchronized · Lock · ReentrantLock的竞争与死…
ANR
同步锁导致的
08
Binder调用阻塞
主线程执行同步Binder请求 · 远程服务无响应
Binder
调用阻塞
09
文件I/O阻塞
主线程读写SharedPrefere… · SQLite · 文件流
I/O
文件
10
网络请求阻塞
主线程使用HttpURLConnec… · OkHttp同步请求
网络请求阻塞
HttpURLConne…
11
WakeLock与状态锁
后台定时任务导致主线程等待唤醒
WakeLock
状态锁
12
系统服务调用超时
ActivityManager · WindowManager等服务的同…
系统服务调用超时
ActivityMana…
13
广播回传阻塞
onReceive中执行长时间操作且…
广播回传阻塞
onReceive
14
Service生命周期阻塞
onStartCommand中执行耗…
Service
生命周期阻塞
15
ContentProvider耗时操作
query · update · insert在主线程执行
ContentProvi…
耗时操作
16
Thread.join与CountDownLatch
主线程等待子线程导致阻塞
Thread.join
CountDownLat…
17
HandlerThread与AsyncTask误用
主线程直接等待子线程结果
HandlerThrea…
AsyncTask
18
死锁排查方法
使用jstack分析线程状态 · 锁依赖图
死锁排查方法
jstack
19
工具使用
Traceview与Systrace…
工具使用
Traceview
20
StrictMode检测
开启政策检查主线程磁盘与网络访问
StrictMode
检测
21
ANR日志分析流程
读取trace文件 · 定位主线程堆栈 · 识别阻塞符号
ANR
日志分析流程
22
常见模式一
SharedPreferences多…
常见模式一
SharedPrefer…
23
常见模式二
Bitmap解码与图片加载在主线程耗…
常见模式二
Bitmap
24
常见模式三
WebView加载与JavaScri…
常见模式三
WebView
25
常见模式四
数据库大批量CRUD操作未使用事务
常见模式四
CRUD
26
修复动作一
耗时时序改异步 · 线程池封装 · HandlerThread
修复动作一
耗时时序改异步
27
修复动作二
锁粒度优化 · 读写分离 · 避免主线程持有锁
修复动作二
锁粒度优化
28
复测清单
回归测试 · 压力测试 · 低端机型验证
复测清单
回归测试
29
预防方案
代码审查规则 · 预置ANR监控dashboard · 报警阈值
预防方案
代码审查规则
30
案例复盘
真实线上ANR从发现到修复完整过程演…
案例复盘
ANR
所属VIP或分类
同VIP:ANR堆栈分析手册:从工具选择到问题定界技巧
同VIP:ANR治理从入门到实战:主线程阻塞场景与解决方案
同VIP:ANR治理案例:从堆栈分析到主线程优化实践