一 .UI卡顿的原理
- 大量的GC也会造成UI卡顿.
- overdraw: 开发者选项里面开启“调试GPU过度绘制”开关. UI布局中有大量重叠的部分(view背景).
二 .UI卡顿原因分析
- 人为在UI线程中做轻微耗时操作,导致UI线程卡顿.
- 布局Layout过于复杂,无法在16ms内完成渲染.
- 同一时间动画执行的次数过多,导致CPU或者GPU负载过重.
- View过度绘制,导致某些像素在同一帧时间内被绘制多次,从而使CPU活GPU负载过重.
- View频繁的触发measure,layout,导致measure,layout累计耗时过多及整个View频繁的重新渲染.
- 内存频繁触发GC过多,导致暂时阻塞渲染操作.
- 冗余资源及逻辑等导致加载和执行缓慢
- ANR
三. UI卡顿总结.
- 布局优化,: include ,merge, view的gone替代visible,较少布局的层数.
- 列表及Adapter优化
- 背景和图片等内存分配优化
- 避免ANR