Android的Graphic System

本文深入探讨了Android的GFX架构,重点介绍了其生产者消费者模型,其中SurfaceFlinger作为消费者,应用和其他服务作为生产者。内容包括总体结构和数据流模型,详细阐述了帧数据在SurfaceFlinger、BufferQueue以及硬件层之间的流动过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android gfx system的核心是一个生产者消费者模型:生产者消费者分别存在于不同的进程,消费者对应SurfaceFlinger,生产者对应application或者其他service。在生产者消费者之间流动的是用来显示的数据。

1. GFX ARCH

1.1 总体结构

这里写图片描述

1.2 数据流模型

这里写图片描述
The diagram above depicts the flow of SurfaceFlinger and BufferQueue. During frame:
1.red buffer fills up, then slides into BufferQueue
2.after red buffer leaves app, blue buffer slides in, replacing it
3.green buffer and systemUI* shadow-slide into HWC (showing that SurfaceFlinger still has the buffers, but now HWC has prepared them for display via overlay on the next VSYNC).

The blue buffer is referenced by both the display and the BufferQueue. The app is not allowed to render to it until the associated sync fence signals.

On VSYNC, all of these happen at once:
•red buffer leaps into SurfaceFlinger, replacing green buffer
•green buffer leaps into Display, replacing blue buffer, and a dotted-line green twin appears in the BufferQueue
•the blue buffer’s fence is signaled, and the blue buffer in App empties**
•display rect changes from

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值