文章来源:Android开发之Android的原生库
Android的原生库主要是基于C\C++实现的一些原生组件,包括C库Bionic、浏览器引擎Webkit、多媒体引擎OpenCORE、SQL数据库SQLite、3D渲染引擎OpenGL ES、位图和字体矢量渲染引擎FreeType、2D图像渲染引擎SGL(Skia Graphics Library)、互联网安全协议SSL和TSL等。
1.Bionic
在Android中,C库并没有采用桌面Linux所采用的GNU Libc,而是采用了Google开发的基于BSD许可的Bionic库。这是因为传统的GNU内核在体积和运行效率上都不适合移动设备,其核心组件都是以动态库的形式驻留在每个进程中,运行效率和内存占用都是十分重要的考虑。另外Google也希望C库能够运行在用户空间。
Bionic库仅为200KB大小,是GNU Libc体积的一半,具有更高的效率、低内存占用、非常快和小的线程实现、内置了对Android特有服务的支持等特点,配合经过优化的Dalvik,Bionic保证了Android的高性能。但需要注意的是Bionic不支持一些特性如Unicode、异常处理等。另外Bionic也和GNU Libc不兼容,这会导致不少移植方面的问题。
2.Webkit
在Android中,内置的浏览器是基于著名的开源浏览器引擎Webkit的,支持CSS、JavaScript、DOM、AJAX等特性,完全遵守WWW规范,支持单栏和自适应视图渲染等。Webkit是浏览器领域著名的引擎之一, Google Chrome、Apple Safari、Apple IPhone、Symbian S60等浏览器均采用了该引擎。
在浏览器的网页渲染的速度和效果,以及对WWW国际标准上,浏览器引擎起着极其重要的作用。在目前的主流浏览器中,IE采用的是Trident引擎,firefox采用的是Gecko引擎,Opera采用的是Presto引擎,konqueror采用的是KHTML引擎。
3.多媒体框架(Media Framework)
在Android中,在Android 2.3以前,多媒体框架采用的是PacketVideo的OpenCORE平台,OpenCORE支持多种视频、音频和图像格式,并支持硬件、软件编解码器插件。在Android 2.3中,正式引入了Stagefright框架。
4.SQLite
在数据库方面,Android采用的是业界著名的SQLite数据库,SQLite是一个轻量级的交互性数据库,大小在500KB左右,目前主流的数据存储后台都是基于SQLite的。
5.OpenGL ES
在Android中,3D图形的渲染支持业界主流的OpenGL ES 2.0规范。OpenGL ES 2.0可以有效的利用硬件来进行加速。在实际的操作中,软件加速采用的是OpenGL ES 1.1规范,硬件加速采用地是OpenGL ES 2.0规范。
6.FreeType
FreeType是一个开源、免费、高质量的,且可移植的位图和字体矢量渲染引擎。它提供了统一的接口来供上层访问各种字体文件,包括TrueType、OpenType、Type1、CID、CFF、Windows FON/FNT、X11 PCF等。另外FreeType还支持单色位图、反走样位图的渲染。需要说明的是FreeType虽然是基于ANSI C来进行开发的,但采用的却是基于面向对象的设计思想,因此在可裁剪性上显得比较灵活。
7.SGL
SGL为一个基于Skia的2D图像渲染引擎,Google通过收购Skia公司获得了该技术,并将SGL应用在Chome浏览器和Android上。
8.SSL
Android对常用的互联网安全协议提供了支持,支持的标准为Secure Sockets Layer 3.0和Transport Layer Security 1.2。SSL被广泛地用于Web浏览器与服务器之间的身份认证和加密数据传输。TLS利用密钥算法在互联网上提供端点身份认证与通信保密。(摘自华清远见系列图书《Android多媒体编程从初学到精通》)
更多华清远见原创教材展:http://www.farsight.com.cn/FarsightBooks/home.html