Android display system overview

转载时请注明出处和作者
文章出处:http://danielwood.cublog.cn
作者:Daniel Wood
------------------------------------------------------------
Android的图形显示系统包括2D和3D两部分。2D部分主要由开源的2D向量图形处理函数库—Skia实现。3D部分由Opengl ES实现。Opengl ES,OpenGL for Embedded Systems是Opengl的子集,是一种跨平台的专为嵌入式设计的图形库。而Opengl为了要做到跨平台,必须有一个和本地窗口系统交互并且平台无关的层。Opengl本质上是一个图形渲染的状态机,而EGL则是用于监控这些状态以及维护FrameBuffer的外部层。
EGL 是介于OpenGL ES或OpenVG的Khronos渲染API与底层本地平台窗口系统之间的接口。它被用于处理图形管理、表面/缓冲捆绑、渲染同步及支援使用其他Khronos API进行的高效、加速、混合模式2D和3D渲染。

From:http://www.khronos.org/egl/

Opengl ES和EGL的关系

1.APP层

在Android上面进行图形开发,主要的API包是:

1.android.graphics,

2.android.view,

3.android.widget,

4.android.opengl,

5.javax.microedition.khronos.opengles,

6.javax.microedition.khronos.egl。

前面3个用于2D图形开发,后面3个用于3D图形开发。API包对应的代码目录为:

1.frameworks/base/graphics/java/android/graphics

2.frameworks/base/core/java/android/view

3.frameworks/base/core/java/android/widget

4.frameworks\base\opengl\java\android\opengl

5.frameworks\base\opengl\java\javax\microedition\khronos\opengl

6.frameworks\base\opengl\java\javax\microedition\khronos\egl

2. JNI层

2D部分的JNI层

1.frameworks/base/core/jni/android/graphics

2.frameworks/base/core/jni/android/opengl

3.frameworks/base/core/jni/android/android_view_*.cpp

3D部分的JNI层

frameworks\base\core\jni\com_google_android_gles_jni_EGLImpl.cpp

frameworks\base\core\jni\com_google_android_gles_jni_GLImpl.cpp

frameworks\base\core\jni\android_opengl_GL*.cpp

对于Opengl部分,除了JNI层的,其余的代码(包括cpp和java,以及自动生成的)都在目录frameworks\base\opengl下面。

3.本地代码

2D部分

frameworks/base/libs/ui

frameworks/base/libs/surfaceflinger

frameworks/base/libs/surfaceflinger_client

3D部分

Opengl的本地代码:

frameworks/base/opengl/libagl

frameworks/base/opengl/libs

OpenGL的本地头文件:

frameworks/base/opengl/include/EGL

frameworks/base/opengl/include/GLES

4.HAL层

gralloc模块

hardware/libhardware/modules/gralloc

overlay模块

hardware/libhardware/modules/overlay

头文件目录:

hardware/libhardware/include/hardware

5.driver层

部分驱动driver/video
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值