一、了解渲染刷新机制
VSYNC(垂直刷新/绘制)
手机刷新屏幕的理想频率是60HZ,60fps—一秒内绘制的帧数。在60fps内,如果系统得到发送的VSYNC(垂直刷新)信号去进行渲染,就会正常地绘制。
VSYNC:有两个概念
1)Refresh Rate: 屏幕在一秒时间内刷新屏幕的次数----有硬件的参数决定,比如60HZ.
2)Frame Rate: GPU在一秒内绘制操作的帧数,比如:60fps。
GPU刷新:GPU帮助我们将UI组件等计算成纹理Texture和三维图形Polygons,同时会使用OpenGL—会将纹理和Polygons缓存在GPU内存里面。
Android系统每隔16ms(1s/60)就重新绘制一次Activity,因此应用必须在16ms内完成屏幕刷新的全部逻辑操作,否则会出现丢帧的情况。
Android系统的渲染管线分为两个关键组件:CPU和GPU
格栅化: 就是将例如字符串、按钮、路径或者形状的一些高级对象,拆分到不同的像素上在屏幕上进行显示
二卡顿是如何造成的
卡顿表示主线程受到了阻塞,原因有以下两种:
1.外部引起的
比如:Activity里面直接进行网络访问/大文件的IO操作
这方面,内存要注意的问题
1)内存抖动的问题。(内存)
new Object
obj = null
2)一个方法太耗时了。(时间)
2.View本身的卡顿
自定义View要注意的,能否优化
- 可以使用Allocation Tracing来定位大致的情况
- 可以使用TraceView来确定详细的问题所在。
三 如何优化:
渲染性能的优化就是尽可能快地上传数据到GPU,然后尽可能长地在不修改的情况下保存数据,因为每次上传资源到GPU时,我们都会浪费宝贵的处理时间