2019-05-20 Android UI界面卡顿

60fps--16ms/帧

准则:尽量保证每次在16ms内处理完所有的CPU与CPU计算、绘制、渲染等操作,否这会造成丢帧卡顿问题

人为在UI线程做了轻微的耗时操作

布局Layout过于复杂,无法再16ms内完成渲染

同一时间动画执行次数过多,导致CPU负载过重

人为在UI线程做了轻微的耗时操作

布局Layout过于复杂,无法再16ms内完成渲染

同一时间动画执行次数过多,导致CPU负载过重

View的过度绘制,导致某些像素在同一帧时间内被绘制多次,从而使CPU负载过重

View频繁的触发measure,layout。导致measure,layout累计耗时过多及整个View频繁的重新渲染

内存频繁触发GC过多(内存抖动)

解决方法:

1、布局优化;尽量使用include、merge、viewstub 标签;尽量不存在冗余嵌套及过于复杂布局;尽量使用gone代替invisiable属性

2、listview与adapter优化;getView中尽量复用view;

3、背景与图片优化;尽量减少不必要的背景设置;图片尽量压缩处理显示;

4、自定义view等绘图与布局优化;尽量避免在draw、measure、layout中做过于耗时及耗内存操作,尤其是draw方法中,尽量减少draw、measure、layout等执行次数;

5、避免ANR;不要在UI线程中做耗时操作,遵守ANR规避守则,譬如多次数据库操作等;

你可能感兴趣的:(2019-05-20 Android UI界面卡顿)