Android 图形内部结构

发布于 2024-10-10 04:47:42 字数 512 浏览 10 评论 0原文

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

从我设法拼凑的情况来看,Android依赖于< a href="http://source.android.com/porting/display_drivers.html" rel="noreferrer">Linux 帧缓冲区。我还没有找到太多关于哪种显示服务器或窗口管理器 Android 使用多路复用对帧缓冲区的访问,因此任何指针将不胜感激!

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

平台加速器的 OpenGL 库是否开源?我发现一些参考文献表明它们是闭源二进制文件。再次强调,任何指示将不胜感激。

I haven't found a clear explanation on how the Android graphics system works, specifically, does it use a display server, is it based on DirectFB or X11, etc.

From what I've managed to piece together, Android depends on the Linux frame buffer. I haven't found much on what sort of display server or window manager Android uses to multiplex access to the framebuffer though, so any pointers would be much appreciated!

Finally, from what I understand the ARM instruction set provides instructions to accelerate OpenGL, but how this integrates with the display server isn't clear, ie. do client applications negotiate a shared memory buffer into which the client writes directly?

Are the OpenGL libraries for the platform accelerator open source? I've found some references suggesting they're closed source binaries. Again, any pointers would be appreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

时光是把杀猪刀 2024-10-17 04:47:42

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

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

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

There are two core pieces to Android graphics: SurfaceFlinger and Skia. SurfaceFlinger is Android's compositor, used by the window manager to create and display windows (actually called surfaces.) SurfaceFlinger is implemented on top of OpenGL ES 1.x currently and can also use other hardware acceleration techniques when available (MDP, a 2D blitter on the T-Mobile G1, or hardware overlays on the Xoom.)

Each application renders into its windows (or surfaces) using primarily Skia. Skia is Android's 2D graphics library. You can also use OpenGL ES 1.x and 2.0 to render into a surface.

Android doesn't use DirectFB or X11 or any other existing Linux solution.

情深已缘浅 2024-10-17 04:47:42

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

There is a brief introduction presentation about Android Graphics: http://www.slideshare.net/jserv/design-and-concepts-of-android-graphics

方圜几里 2024-10-17 04:47:42

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

Romain Guy was definitely right. But thing changed since Android 3.0. Skia is not that important anymore , most 2D drawing are accelerated using openGL, a.k.a HWUI component.

一个人的旅程 2024-10-17 04:47:42

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

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

All the information about android graphics can be found here:

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文