UI卡顿相关

UI卡顿原理

60 fps -->16ms
卡顿,主要是渲染。
一秒60帧, 在16ms内完成计算渲染,操作。
在绘制的时候 大量的gc

overdraw 过渡绘制,减少红色。

UI卡顿原因分析

  • 人为在UI线程中做轻微的耗时操作,导致UI线程卡顿。
    android不是线程安全的,线程间通信 handler。
  • 布局Layout 过于复杂,无法在16ms内完成渲染
  • 同一时间动画执行的次数过多,导致CPU或GPU负载过重
  • View过度绘制,导致某些像素在同一帧时间内被绘制多次,从而使CPU 或GPU负载过重
  • View 频繁的触发measure / layout ,导致 measure / layout 累计耗时过多 及整个View 频繁的重新渲染
  • 内存频繁出发gc 过多,导致暂时阻塞渲染操作
  • 冗余资源及逻辑导致加载执行缓慢
  • ANR (轻量版)

总结

  • .布局优化,include ,merge ,尽量不要嵌套,GONE 不会绘制,invisible 会绘制,尽量使用weight
  • 列表及Adapter 优化, adapter 的 getview。 滑动时候,只有在滑动停止的时候 再去加载图片,更新元素,可以在滑动时候显示缩略图
  • 背景和图片等内存分配优化,尽量减少不必要的背景
  • 避免ANR android 中的异步消息框架,Handler,AsyncTask, IntentService ,HandlerThread

你可能感兴趣的:(UI卡顿相关)