我还没有找到有关Android图形系统如何工作的清晰解释,具体来说,它是基于DirectFB或X11等。

从我设法拼凑在一起的情况下,Android取决于 Linux框架缓冲区. 。我在哪种显示服务器或 窗口管理器 但是,Android用于多路复用访问Framebuffer,因此任何指示都将不胜感激!

最后,据我了解,ARM指令集提供了加速OpenGL的说明,但是与Display Server集成的方式尚不清楚,即。客户端应用程序是否会协商客户直接写入的共享内存缓冲区?

平台加速器开源的OpenGL库是吗?我发现一些参考文献表明它们是封闭的源二进制文件。同样,任何指针都将不胜感激。

有帮助吗?

解决方案

Android图形有两个核心部分:SurfaceFlinger和Skia。 SurfaceFlinger是Android的Compositor,由窗口管理器使用来创建和显示窗口(实际称为表面。)SurfaceFlinger当前在OpenGL ES 1.X的顶部实现,并且还可以使用其他硬件加速技术(MDP,MDP,在2D,在2D上的闪电器上的2D Blitter T-Mobile G1或Xoom上的硬件叠加。)

每个应用程序主要使用SKIA渲染到其窗户(或表面)中。 Skia是Android的2D图形库。您也可以使用OpenGL ES 1.X和2.0将其呈现为表面。

Android不使用DirectFB或X11或任何其他现有Linux解决方案。

其他提示

罗曼·盖伊(Romain Guy)绝对是对的。但是自Android 3.0以来,情况发生了变化。 SKIA不再重要了,大多数2D图是使用OpenGL(又称HWUI组件)加速的。

有关Android图形的所有信息都可以在此处找到:

https://source.android.com/devices/graphics/

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top