(转)Android display架构分析(六)

本部分介绍的完全是用户空间显示部分的架构,与kernel并没有直接的联系,主要是JNI以下到HAL以上的部分。

1、Surface managersurface flinger)简介

Surface manager是用户空间中frameworklibraries中负责显示相关的一个模块。

    当系统同时执行多个应用程序时,Surface Manager会负责管理显示与存取操作间的互动,另外也负责将2D绘图与3D绘图进行显示上的合成。

    surface manager 可以准备一块 surface(可以看作一个layer),把 surface  fd (一块内存) 传给一个 app,让 app 可以在上面作画。



2、Surface manager架构分析

Android中的图形系统采用Client/Server架构,如下:

Client:应用程序相关部分。代码分为两部分,一部分是由Java提供的供应用使用的api,另一部分则是由c++写成的底层实现

ServerSurfaceFlinger,负责合成并送入buffer显示。其主要由c++代码编写而成。

ClientServer之前通过BinderIPC方式进行通信。

 

 Surfaceclient部分其实是提供给各应用程序进行画图操作的一个桥梁,该桥梁通过binder通向server端的SurfaceflingerSurfaceflinger负责合成各个surface,然后把buffer传送到framebuffer端进行底层显示。其中每个surface对应2buffer一个front buffer, 一个back buffer,更新时,数据更新在back buffer上,需要显示时,则将back bufferfront buffer互换。

你可能感兴趣的:((转)Android display架构分析(六))