UI卡顿面试题

1、UI卡顿原理

View的绘制帧数保持60fps是最佳,这要求每帧的绘制时间不超过16ms(1000/60),如果安卓不能在16ms内完成界面的渲染,那么就会出现卡顿现象

2、UI卡顿的原因分析

  • 在UI线程中做轻微的耗时操作,导致UI线程卡顿
  • 布局Layout过于复杂,无法在16ms内完成渲染
  • 同一时间动画执行的次数过多,导致CPU和GPU负载过重
  • overDraw,导致像素在同一帧的时间内被绘制多次,使CPU和GPU负载过重
  • View频繁的触发measure、layout,导致measure、layout累计耗时过多和整个View频繁的重新渲染
  • 频繁的触发GC操作导致线程暂停,会使得安卓系统在16ms内无法完成绘制
  • 冗余资源及逻辑等导致加载和执行缓慢
  • ANR

3、UI卡顿的优化

  • 布局优化
    • 使用include、ViewStub、merge
    • 不要出现过于嵌套和冗余的布局
    • 使用自定义View取代复杂的View
  • ListView优化
    • 复用convertView
    • 滑动不加载
  • 背景和图片优化
    • 缩略图
    • 图片压缩
  • 避免ANR
    • 不要在UI线程中做耗时操作

results matching ""

    No results matching ""