一、UI卡顿原理
60fps--16ms/帧
准则:尽量保证每次在16ms内处理完所有的CPU与CPU计算、绘制、渲染等操作,否这会造成丢帧卡顿问题
二、UI卡顿常见原因
人为在UI线程做了轻微的耗时操作
布局Layout过于复杂,无法再16ms内完成渲染
同一时间动画执行次数过多,导致CPU负载过重
View的过度绘制,导致某些像素在同一帧时间内被绘制多次,从而使CPU负载过重
View频繁的触发measure,layout。导致measure,layout累计耗时过多及整个View频繁的重新渲染
内存频繁触发GC过多(内存抖动)
...
三、BlockCanary原理(主线程消息处理时间)
Start--handle.postmessage--MainLooper.loop--queue.next--T1--dispatcher--T2--T2减T1大于阈值--dump information(thread stack,cpu usage,memory)