Android display system overview
来源:互联网 发布:淘宝安全中心找回密码 编辑:程序博客网 时间:2024/05/16 17:57
------------------------------------------------------------
Android的图形显示系统包括2D和3D两部分。2D部分主要由开源的2D向量图形处理函数库—Skia实现。3D部分由Opengl ES实现。Opengl ES,OpenGL for Embedded Systems是Opengl的子集,是一种跨平台的专为嵌入式设计的图形库。而Opengl为了要做到跨平台,必须有一个和本地窗口系统交互并且平台无关的层。Opengl本质上是一个图形渲染的状态机,而EGL则是用于监控这些状态以及维护FrameBuffer的外部层。
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层
- Android display system overview
- Android display system overview
- Android Audio system Overview
- Android Display System
- Android 中文翻译:Build System Overview
- Android Display System --- Surface Flinger
- Android Display System --- Surface Flinger
- Android Display System --- Surface Flinger
- Android Display System --- Surface Flinger
- Android Display System --- Surface Flinger
- Android Display System --- Surface Flinger
- Android Display System Surface Flinger
- Android Display System --- Surface Flinger
- Android Display System --- Surface Flinger
- Android Display System --- Surface Flinger
- Android Display System --- Surface Flinger
- Android Display System --- Surface Flinger
- Android Display System --- Surface Flinger
- u-boot-2009.08在mini2440上的移植 增加I2C EEPROM功能
- 获取目录与地址
- Install And Config PowerShell
- 解释器,树遍历解释器,基于栈与基于寄存器!
- C++/CLI(五):跟踪句柄、跟踪引用及内部指针
- Android display system overview
- CSDN博客频道——“我的2011”年度征文活动火爆进行中!
- C++/CLI(六):函数
- [W]和[V]的发音
- 二进制直接量(binary number format)
- Documents文件夹和Resources文件夹有什么样的区别?
- C++/CLI(七):类函数
- linux 后台运行和关闭SSH运行,查看后台任务
- 定时任务