Android系统每隔16ms就重新绘制一次,也就是说,我们的应用必须在16ms内完成屏幕刷新的全部逻辑操作,即每一帧只能停留16ms。
渲染通常以来i两个核心组件:cpu和gpu。cpu包括measure,layout,record,execute的计算操作,GPU负责Rasterization(栅格化)操作。
栅格化操作是指绘制那些button,shape,pathbitmap等组件最基础的操作。它把那些组件拆分到不同的像素上进行显示,就是解决那些复杂的xml布局文件和标记语言,使之转化为用户能看懂的图像,但是这不是直接转换的,xml布局文件需要在cpu中首先转换为多边形或者纹理,然后再传递给GPU进行栅格化。
16毫秒的时间主要做两件事:将UI对象转换为一系列多边形和纹理;CPU传递处理数据到GPU。
CPU方面的性能问题主要是不必要的布局和失效,这两个原因在更新显示列表或者其他缓存GPU资源时导致CPU工作过度。