Android图形内部
-
14-10-2019 - |
题
我还没有找到有关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解决方案。
其他提示
有关于Android图形的简短介绍: http://www.slideshare.net/jserv/design-and-concepts-of-android图
罗曼·盖伊(Romain Guy)绝对是对的。但是自Android 3.0以来,情况发生了变化。 SKIA不再重要了,大多数2D图是使用OpenGL(又称HWUI组件)加速的。
有关Android图形的所有信息都可以在此处找到: