本文主要是是介绍 Android 中的 Vsync 机制。文章会从 Systrace 的角度来看 Android 系统如何基于 Vsync 每一帧的展示。Vsync 是 Systrace 中一个非常关键的机制,虽然我们在操作手机的时候看不见,摸不着,但是在 Systrace 中我们可以看到,Android 系统在 Vsync 信号的指引下,有条不紊地进行者每一帧的渲染、合成操作,使我们可以享受稳定帧率的画面。
Vsync 信号可以由硬件产生,也可以用软件模拟,不过现在基本上都是硬件产生,负责产生硬件 Vsync 的是 HWC,HWC 可生成 VSYNC 事件并通过回调将事件发送到 SurfaceFlinge , DispSync 将 Vsync 生成由 Choreographer 和 SurfaceFlinger 使用的 VSYNC_APP 和 VSYNC_SF 信号

在 Android 基于 Choreographer 的渲染机制详解 这篇文章里面,我们有提到 :Choreographer 的引入,主要是配合 Vsync,给上层 App 的渲染提供一个稳定的 Message 处理的时
本文深入探讨了Android系统的Vsync机制,从Systrace的角度分析了如何在Vsync信号指导下进行每一帧的渲染和合成操作。Vsync是保证画面稳定帧率的关键,通过Choreographer和SurfaceFlinger协调App绘制和合成。硬件Vsync由HWC生成,Choreographer在Vsync到来时调度App绘制,SurfaceFlinger则在Vsync信号下进行合成。Vsync Offset的设置会影响App和SurfaceFlinger同步,合理的Offset配置能优化显示性能。
订阅专栏 解锁全文
2821





