Androidgraphics内部

我还没有find关于Androidgraphics系统如何工作的明确解释,具体来说,是使用显示服务器,是基于DirectFB还是X11等。

从我设法拼凑在一起,Android依赖于Linux帧缓冲区 。 我还没有find什么样的显示服务器或窗口pipe理器 Android用来多路访问帧缓冲区,所以任何指针将不胜感激!

最后,从我所了解的ARM指令集提供的OpenGL加速指令来看,如何将这与显示服务器集成在一起还不是很清楚, 客户端应用程序是否会协商客户端直接写入的共享内存缓冲区?

平台加速器的OpenGL库是开源的吗? 我发现一些引用暗示他们是封闭的源代码二进制文件。 再次,任何指针将不胜感激。

Androidgraphics有两个核心部分:SurfaceFlinger和Skia。 SurfaceFlinger是Android的合成器,由窗口pipe理器用来创build和显示窗口(实际上称为曲面)。SurfaceFlinger目前在OpenGL ES 1.x之上实现,也可以使用其他硬件加速技术(MDP,2D模糊T-Mobile G1或Xoom上的硬件覆盖层)。

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

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

有一个关于Androidgraphics的简短介绍: http : //www.slideshare.net/jserv/design-and-concepts-of-android-graphics

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

所有关于androidgraphics的信息可以在这里find:

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