Android系统每隔16ms重新绘制一次Activity,意思就是你的app必须在16ms内完成屏幕刷新的所有逻辑操作,这样才可以达到60帧/s。但是用户一般看到的卡顿是由于Android渲染性能造成的。
首先我们要了解Android的渲染机制,主要分为两个组件:CPU和GPU。
这两者共同完成屏幕上的绘制。
Activity如何将复杂的UI转换成用户看得懂的图像绘制到屏幕上呢?
这些都是通过栅格化操作完成的,所谓的栅格化操作就是绘制那些Button,Shape,Path,String,Bitmap等组件最基础的操作。它们把这些组件拆分到不同的像素上进行显示,简单点讲就是将那些复杂的XML布局文件和标记语言,转化成用户能看得懂的图像,但是这些不是直接转化的,XML布局文件需要在CPU中首先转化称多边形或者纹理,然后再传递给GPU进行栅格化,对于栅格化跟OpenGL有关,栅格化是一个特别费时的操作。