一 .UI卡顿的原理

  1. 大量的GC也会造成UI卡顿.
  2. overdraw: 开发者选项里面开启“调试GPU过度绘制”开关. UI布局中有大量重叠的部分(view背景).

二 .UI卡顿原因分析

  1. 人为在UI线程中做轻微耗时操作,导致UI线程卡顿.
  2. 布局Layout过于复杂,无法在16ms内完成渲染.
  3. 同一时间动画执行的次数过多,导致CPU或者GPU负载过重.
  4. View过度绘制,导致某些像素在同一帧时间内被绘制多次,从而使CPU活GPU负载过重.
  5. View频繁的触发measure,layout,导致measure,layout累计耗时过多及整个View频繁的重新渲染.
  6. 内存频繁触发GC过多,导致暂时阻塞渲染操作.
  7. 冗余资源及逻辑等导致加载和执行缓慢
  8. ANR

三. UI卡顿总结.

  1. 布局优化,: include ,merge, view的gone替代visible,较少布局的层数.
  2. 列表及Adapter优化
  3. 背景和图片等内存分配优化
  4. 避免ANR

results matching ""

    No results matching ""