一、UI卡顿原理
60fps ---> 16ms
60fps:60帧
16ms:Android每隔16ms发出信号触发对UI进行渲染
overdraw(过多绘制)
某一像素在同一时间内被绘制了很多次.经常出现在多层次的UI结构里面.
UI布局中有大量重叠部分
二、UI卡顿的原因分析(主要根源来自于Android的渲染性能)
1.人为在UI线程中做轻微耗时操作,导致UI卡顿。
2.布局Layout过于复杂,无法在16ms内无法完成渲染。
3.同一时间动画执行的次数过多。
4.View的过度绘制,导致了某些像素在同一帧时间内被绘制多次,从而使CPU或GPU负载过重。
5.View频繁绘制出触发measure,layout.导致measure,layout累计耗时过多及整个View频繁的重新渲染。
6.内存频繁触发GC过多,导致暂时阻塞渲染操作。
7.冗余资源及逻辑等导致加载和执行缓慢。
8.ANR(在主线程中做了耗时操作) UI卡顿=轻量版的ANR
三、UI卡顿的优化
1.布局优化
2.列表及Adapter优化
3.背景和图片等内存分配优化
4.避免ANR