首页
›
移动端与Android应用开发
›
056-离线优先架构Compose快照回归
›
《快照重计算导致的ANR问题定位与调优指南》
VIP20
本课程属于:056-离线优先架构Compose快照回归
移动端与Android应用开发 · 共 20 门相关课程,组合学习更完整。
查看所属VIP全部课程 →
← 返回所属目录
咨询 / 购买
快照重计算导致的ANR问题定位与调优指南
共计 30 章节
点击此处阅读海量试读课程:100+行业、1000+细分领域
01
ANR基础概念
什么是ANR · ANR的分类(输入事件 · 广播
ANR
基础概念
02
快照机制概述
Android快照的生命周期 · 快照的创建与销毁 · 快照在WMS/SurfaceFlin…
快照机制概述
Android
03
快照重计算触发条件
窗口变化 · 旋转 · 缩放
快照重计算触发条…
窗口变化
04
快照重计算流程剖析
从Layer更新到SurfaceFl…
快照重计算流程剖…
Layer
05
ANR产生与快照重计算的关联
主线程阻塞 · 同步锁竞争 · Binder调用超时导致的快照计算卡…
ANR
产生
06
常见快照重计算ANR场景1
频繁的窗口布局动画导致重计算风暴
ANR
常见快照重计算
07
常见快照重计算ANR场景2
多窗口分屏或自由窗口切换时快照刷新过…
ANR
常见快照重计算
08
常见快照重计算ANR场景3
自定义View的invalidate…
ANR
常见快照重计算
09
常见快照重计算ANR场景4
SurfaceFlinger内部Me…
ANR
常见快照重计算
10
常见快照重计算ANR场景5
GPU合成耗时过长阻塞快照提交
ANR
常见快照重计算
11
日志分析基础
抓取ANR trace文件 · logcat · bugreport
日志分析基础
ANR
12
从trace中识别快照相关线程
重点关注android.displa… · SurfaceFlinger · RenderThread
trace
识别快照相关线程
13
快照重计算ANR的典型堆栈特征
函数调用栈中频繁出现updateCo… · computeSnapshot等
ANR
快照重计算
14
使用Systrace/Perfetto定位快照重计算耗时点。
使用Systrace/Perfetto定… · 核心概念 · 实践要点
Systrace/Per…
使用
15
通过CPU Profiler分析快照重计算期间的CPU负载与线程争抢。
通过CPU Profiler分析快照重计… · 核心概念 · 实践要点
CPU
Profiler
16
内存快照与堆栈对比
使用MAT或heap dump分析快…
内存快照
堆栈对比
17
实战案例1
启动闪屏页ANR——快照因权限敏感窗…
实战案例1
ANR
18
实战案例2
拖拽气泡窗口ANR——快照重计算与手…
实战案例2
ANR
19
实战案例3
视频播放器全屏/退出全屏ANR——S…
实战案例3
ANR
20
快照重计算调优原则
减少不必要的快照 · 合并快照请求 · 异步化处理
快照重计算调优原…
减少不必要的快照
21
优化方案1
使用硬件层(HardwareLaye…
优化方案1
HardwareLaye
22
优化方案2
通过View.setLayerTyp…
优化方案2
View.setLaye…
23
优化方案3
批量提交窗口属性变更 · 减少SurfaceFlinger消息…
优化方案3
批量提交窗口属性…
24
优化方案4
利用Choreographer帧回调…
优化方案4
Choreographe…
25
优化方案5
自定义Transaction合并技巧 · 降低Binder调用频次
优化方案5
Transaction
26
代码层面检测
添加自定义Watchdog监控快照计…
代码层面检测
Watchdog
27
自动化测试
编写UI自动化用例模拟高频率窗口变更…
自动化测试
UI
28
线上监控
接入Matrix/Woodpecke…
线上监控
Matrix/Woodp…
29
性能指标与报警
快照计算平均耗时/最长耗时/成功率监…
性能指标
报警
30
总结与最佳实践
建立快照重计算ANR的预防 · 发现 · 解决闭环体系
最佳实践
ANR
所属VIP或分类
同VIP:CI中Compose快照回归错误排查方法
同VIP:CI运行中Compose快照回归自动化测试配置方法
同VIP:Compose快照回归常见错误与解决方案教程