文章来源: 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

更多相关文章

  1. android下不规则多边形填充位图
  2. 通过判断浏览器的userAgent,用正则来判断手机是否是ios(苹果)和Andr
  3. Google 发布 Android 版 Chrome 浏览器,只支持 Android 4.0
  4. android位图颜色模式的问题
  5. Android使用默认浏览器打开网页
  6. android 图表引擎
  7. Android 调用系统浏览器 出现activitynotfoundexception 解决办
  8. Android——BitMap(位图)相关知识总结贴

随机推荐

  1. android 动态创建View
  2. Android-Jetpack笔记-Paging结合网络数据
  3. android 打印工具类
  4. 自动代码规范检查工具Checkstyle
  5. 【Android】VirtualBox + android x86 模
  6. Mac下安装Android(安卓)Studio / SDK Man
  7. android svg资源使用具体操作
  8. Android网络访问与数据解析
  9. 深入理解AsyncChannel、Messenger
  10. android编译时如何决定一个APK等Module是