一.UI卡顿原理
60fps->16ms:gc时其他线程都不执行,大量gc会导致卡顿
overdraw
二.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.布局优化:尽量用Gone代替INVISIBLE,Gone不会绘制,INVISIBLE会
item很复杂用自定义view复用
2.列表及Adapter优化
3.背景和图片等内存分配优化
4.避免ANR
网友评论