Android 图形系统及其应用
一. Android 图形系统
本着知其然,要知其所以然的精神,我探索了Android的图形系统。Android 的图形系统采用client/server架构。Server端(SurfaceFlinger)主要由C++代码编写而成。Client 端代码分为两部分, 一部分是由Java提供的供应用使用的api, 另一部分则是由C++写成的底层实现。Android 图形系统的框架如下图,下面我就介绍几个概念.
Application |
|
Java View/widgets/canvas |
opengl |
surface |
Skia 作为Android的图形系统,由如下特征
· 高度优化的软件 rasteriser (module sgl/)
· 选择性透过 OpenGL/ES,加速特定操作,如 shader 与 textures (module gl/)
· 动画处理能力(module animator/)
· 内建 SVG 支援 (module (svg/)
· 内建若干 image codec,如 PNG, JPEG, GIF, BMP (modules images/)
· 内建文字处理,但缺乏泰文、藏文一类复杂文字处理的能力