您的位置:华清远见教育科技集团 >> Android资料 >> Android Skia 渲染概述  
 
Android Skia 渲染概述
分享到:

在Android中,2D渲染的引擎为SGL,为了给上层应用提供更便捷的服务,Android通过android.graphics.*实现了对SGL引擎的Java JNI接口封装;通过android.graphics、android.graphics.drawable、android.graphics.drawable.shapes等包,Android提供了对2D渲染如Canvas、Color、Paint、Path、Point、Drawable等的渲染支持。Skia在Android中的位置如下图所示。

下面是Surface Flinger的监听线程处理事件的实现过程:


Skia在Android中的位置

Skia的源代码主要位于external\skia目录下。与Firefox采用的Cairo相比,Skia更加小而高效,接口也更加简洁。

external\skia\src\animator目录下的文件用来实现Skia的动画效果,分为Animator、Display、Draw、SkScript等逻辑模块。其中Animator部分包括SkAnimatorActive、SkAnimatorBase、SkAnimatorField、SkAnimatorSet、SkAnimatorScript等;Display 部分包括SkDisplayAdle、SkDisplayAdd、 SkDisplayEvents、SkDisplayList、SkDisplayInput、SkDisplayMovie等;Draw部分包括SkDraw3D、 SkDrawBitmap、SkDrawClip、SkDrawColor、SkDrawBlur、SkDrawLine、SkDrawPaint、 SkDrawPath、SkDrawPoint等;SkScript部分包括SkScript、SkScriptRuntime、SkScriptDecompile等。

external\skia\src\core目录下的文件为Skia的核心部分,执行图形绘制功能,主要类包括SkColor、SkCanvas、SkBitmap、SkPicture、SkBlitter、SkCordic、SkPath、SkPoint、SkRect、SkRegion、SkMask 等。

external\skia\src\gl目录下的文件实现了Skia的图形库。其引擎为Open GL或者 Open GL ES,用于实现一些简单的3D效果。

external\skia\src\images目录下的文件实现了Skia的图像部分。支持常见图像的解码、部分图像的编码和动画等。

external\skia\src\ports目录下的文件定义了Skia的移植封装接口,包括Font、Event、File、Thread、Time、XMLParser等。

external\skia\src\svg目录下的文件实现了Skia对矢量图像SVG的支持。

external\skia\src\utils目录下的文件实现了Skia的一些辅助工具,包括SkCamera、SkColorMatrix、SkOSFile、SkProxyCanvas、SkInterpolator等。

external\skia\src\views目录下的文件实现了Skia的界面UI库,控件包括Window、Menu、 TextBox、ListView、 ProgressBar、 Widget、 ScrollBar、TagList、Image等。目前Skia的UI库暂未被Android使用。

external\skia\src\xml目录下的文件实现了Skia对XML的DOM、解析器的封装。具体的XML解析器的实现需要根据不同的操作系统及宿主程序来实现。相关的类包括SkDOM、SkDOMNode、SkDOMAttr、SkXMLParser、SkXMLParserError、SkXMLPullParser、SkDisplayXMLParser、SkXMLWriter、SkXMLStreamWriter、SkXMLAnimatorWriter等。相关的实现位于external\skia\src\xml目录下。

 更多相关文章

·Android Surface渲染管理
·Android LayerBuffer模式的layer渲染
·Android应用程序之WebApp开发实战
·从开发到盈利--安卓程序商业化之路
·Android Layer纹理重载的实现