屏幕刷新机制

我们一般衡量流畅度都是以16ms为标准的,那么这个16ms是怎么来的呢?

先了解一个概念,刷新率:至的是一秒内刷新屏幕的次数,一般都是60hz;

1000ms / 60 约等于 16ms一帧。

ui的刷新过程大概如下:

屏幕刷新机制_第1张图片

1,display 代表显示器或者屏幕

2,cpu负责计算数据,然后将数据交给gpu,gpu对图像的数据进行渲染,再把渲染好的数据放到buffer里面,显示器或者屏幕会隔一段时间去buffer里拿数据并且显示出来

但是,这么做的话会出现问题,刷新率和帧率不能保持相同的节奏(gpu放的比屏幕取数据快,或者屏幕取数据比gpu放的要快);

针对以上问题,安卓系统有vsync(垂直同步来解决)、三层buffer

垂直同步使刷新率和帧率保持相同的节奏,会每隔16ms发出一个vsync信号,收到了vsync信号之后才会进行画面绘制。

画面撕裂:一个画面上出现了多帧画面内容,帧率大于刷新率导致,如下图:

 

屏幕刷新机制_第2张图片

屏幕刷新机制_第3张图片

图一:帧率大于刷新率,造成画面撕裂;图二:帧率小于刷新率,同一帧数据会显示多次

 

 

 

你可能感兴趣的:(屏幕刷新机制)