屏幕刷新机制

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

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

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

ui的刷新过程大概如下:

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

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

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

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

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

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

 

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

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值