43

我还没有找到关于Android图形系统如何工作的明确解释,具体来说,它是否使用显示服务器,是基于DirectFB还是X11等。

根据我的拼凑,Android 依赖于Linux 帧缓冲区。我还没有找到太多关于Android使用哪种显示服务器或窗口管理器来多路访问帧缓冲区,所以任何指针都将不胜感激!

最后,据我了解,ARM 指令集提供了加速 OpenGL 的指令,但它如何与显示服务器集成尚不清楚,即。客户端应用程序是否协商客户端直接写入的共享内存缓冲区?

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

4

4 回答 4

44

Android 图形有两个核心部分:SurfaceFlinger 和 Skia。SurfaceFlinger 是 Android 的合成器,窗口管理器使用它来创建和显示窗口(实际上称为表面)。 SurfaceFlinger 目前是在 OpenGL ES 1.x 之上实现的,并且在可用时还可以使用其他硬件加速技术(MDP,2D blitter on T-Mobile G1,或 Xoom 上的硬件覆盖。)

每个应用程序主要使用 Skia 渲染到其窗口(或表面)。Skia 是 Android 的 2D 图形库。您还可以使用 OpenGL ES 1.x 和 2.0 渲染到表面。

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

于 2011-02-15T17:38:23.233 回答
10

有关于Android Graphics的简要介绍介绍:http ://www.slideshare.net/jserv/design-and-concepts-of-android-graphics

于 2012-01-05T08:21:00.963 回答
6

罗曼盖伊是绝对正确的。但自 Android 3.0 以来,情况发生了变化。Skia 不再那么重要了,大多数 2D 绘图都是使用 openGL 加速的,也就是 HWUI 组件。

于 2013-03-08T05:34:51.073 回答
3

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

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

于 2016-07-27T15:49:05.067 回答