流畅度优化之一——Vsync的介绍


用简单通俗易懂的话来记录自己对Vsync的理解

1.前言

听说oppofindx2pro的屏幕刷新率是120Hz,那么屏幕的刷新率到底是啥?提高刷新率为啥就感觉顺滑了很多呢?
这是做的对比,大家可以看下
总体来说,是顺滑了很多,为啥在视觉上会感觉顺滑很多呢?从60HZ->120HZ,增加的是什么?增加的是刷新率,刷新率是如何实现的呢?Vsync闪亮登场。

2.Vsync

正如我们所知,平时我们使用的手机的的刷新率是60HZ,也就是每秒钟刷新60帧,每帧保持16.6ms。那是如何实现的呢?这里涉及HAL(Hardware Abstraction Layer),SurfaceFlinger,下图是传递流程。

在这里插入图片描述

1.Vsync信号图

安卓系统中VSync 信号如图所示。
1、屏幕产生的硬件 VSync: 硬件 VSync 是一个脉冲信号,简称hs Vsync
2、由 SurfaceFlinger 将其转成的软件 Vsync 信号:分为vsync_app和vsync_sf。
Vsync_app用于调用Choreographer.onVsync进行View的绘制工作,在onDraw()时,会调用Skia绘制图元,使用匿名内存传递给SurfaceFlinger进程。
Vsync_sf是将队列中的图元使用CPU/GPU进行展示在显示屏。
引入Vsync机制本质是协调vsync_app生成UI的图元数据和vsync_sf的合成图像,app是数据的生产者,surfaceFlinger是数据的消费者。vsync避免了Tearing现象。vsync信号有两个消费者,一个是app,一个surfaceflinger,这两个消费者并不是同时接收vsync,他们之间有个offeset.

2.vsync-offset引入原因

提高“跟手性”m

3.解惑

1.为啥120hz比60hz更流畅
实际上电影是24hz,120hz相当于1秒钟,你看到了120帧连续图片进行播放,而60HZ则只有60帧,肯定前者更清晰。

4.站在巨人肩膀

1.Vsync
2.Android 重学系列 SurfaceFlinger的概述
3.Android Systrace 基础知识 - Vsync 解读
4.android的渲染机制

  • 1
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值