WEB开发网
开发学院手机开发Android 开发 Android 图形系统详解 阅读

Android 图形系统详解

 2010-09-06 08:33:00 来源:WEB开发网   
核心提示:与图形相关的代码主要位于下列目录:1、frameworks/base/graphics/java/android/graphics2、frameworks/base/core/java/android/view3、frameworks/base/core/java/android/widget4、frameworks/

与图形相关的代码主要位于下列目录:

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/

5、frameworks/base/libs/ui

6、frameworks/base/libs/surfaceflinger

7、frameworks/base/core/jni/android/graphics

8、frameworks/base/core/jni/android/opengl

9、frameworks/base/core/jni/android/android_view_*.cpp

10、external/skia

一、下列目录中的部分代码:

1、frameworks/base/graphics/java/android/graphics

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

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

android.graphics, android.view和android.widget功能和其他类似的图形库如Qt/Gtk+差不多,分别提供基本的图形原语(如画点画线,设置图形上下文等),事件机制,以及开发图形用户界面的控件等。canvas 用于开发2D图形, Surface 代表一个可供图形系统绘制的surface。可在其上绘制2D活3D图形。

二. frameworks/base/opengl/

这个目录包含opengel的接口以及软件实现。在http://developer.android.com/guide/topics/graphics/opengl.html有详细介绍如何使用android.opengl开发3d graphics。

三.external/skia,台湾的Jserv先生有一篇比较好的介绍,感兴趣的读者可以参考他的博文(http://blog.linux.org.tw/~jserv /archives/002095.html)。简而言之,skia与cairo功能相当,封装底层的图形硬件,为上面的图形库提供最基础的操作图形硬件的原语。

四. frameworks/base/libs/ui 和 frameworks/base/libs/surfaceflinger

ISurface 定义了基础的Surface接口,供图形系统客户端(应用)和server端(即surfaceflinger)交互。

BpSurface是ISurface的派生类,提供接口供server 调用客户端功能;

BnSurface 是ISurface的另一个派生类,提供接口供客户端调用server功能。当 server 收到来自客户端(通过BnSurace)的调用请求后,如registerBuffers, postBuffer等,BnSurface::onTransact被触发。

Surface (LayerBaseClient的私有类)是BnSurface的派生类。

上一页  1 2 3 4  下一页

Tags:Android 图形

编辑录入:coldstar [复制链接] [打 印]
赞助商链接