详解 Android 图形系统
2010-03-10 16:45:00 来源:WEB开发网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
skia与cairo功 能相当,封装底 层的图形硬件 ,为上面的图形库提供最基础的操作图形硬件的原语。关于 skia 可参考《??Google Skia ?形?理引擎》2和 《Android 的图形引擎 Skia》3两篇文章。
frameworks/base/libs/ui 和 frameworks/base/libs/surfaceflinger
ISurface 定义了基础的Surface接 口,供图形系统客户端 (应用)和server端(即surfaceflinger)交互。
BpSurface是ISurface的 派生类,提供接口供server 调用客户端功能;
BnSurface是ISurface的 另一个派生类,提供接口供客户端调用server功能。当 server 收到来自客户端 (通过BnSurace) 的调用请求后,如registerBuffers, postBuffer等,BnSurface:nTransact被触发。
Surface (LayerBaseClient的私有类)是BnSurface的派生类。
SurfaceBuffer (SurfaceBuffer的私有类)是Surface的派生类。
ISurfaceComposer 定义了基础的接口,供客户端和server端交互。
BpSurfaceComposer是 一个派生类,提供接口供server调用客户端功能;
BnSurfaceComposer是 另一派生类,提供接口供客户端调用server功能。类 SurfaceFlinger 由BnSurfaceComposer派 生而来。
SurfaceComposerClient直接供客户端使用,调用ISurface (BnSurface)和 ISurfaceComposer (BnSurfaceComposer) 以及 ISurfaceFlingerClient 接口,与server交 互。
BClient 派生自ISurfaceFlingerClient (BnSurfaceFlingerClient), 调用server的createSurface,真正创建一个surface。 每个surface对应一个layer.
更多精彩
赞助商链接