Android的原生庫主要是基于C\C++實現(xiàn)的一些原生組件,包括C庫Bionic、瀏覽器引擎Webkit、多媒體引擎OpenCORE、SQL數(shù)據(jù)庫SQLite、3D渲染引擎OpenGL ES、位圖和字體矢量渲染引擎FreeType、2D圖像渲染引擎SGL(Skia Graphics Library)、互聯(lián)網(wǎng)安全協(xié)議SSL和TSL等。
1.Bionic
在Android中,C庫并沒有采用桌面Linux所采用的GNU Libc,而是采用了Google開發(fā)的基于BSD許可的Bionic庫。這是因為傳統(tǒng)的GNU內(nèi)核在體積和運行效率上都不適合移動設備,其核心組件都是以動態(tài)庫的形式駐留在每個進程中,運行效率和內(nèi)存占用都是十分重要的考慮。另外Google也希望C庫能夠運行在用戶空間。
Bionic庫僅為200KB大小,是GNU Libc體積的一半,具有更高的效率、低內(nèi)存占用、非?旌托〉木程實現(xiàn)、內(nèi)置了對Android特有服務的支持等特點,配合經(jīng)過優(yōu)化的Dalvik,Bionic保證了Android的高性能。但需要注意的是Bionic不支持一些特性如Unicode、異常處理等。另外Bionic也和GNU Libc不兼容,這會導致不少移植方面的問題。
2.Webkit
在Android中,內(nèi)置的瀏覽器是基于著名的開源瀏覽器引擎Webkit的,支持CSS、JavaScript、DOM、AJAX等特性,完全遵守WWW規(guī)范,支持單欄和自適應視圖渲染等。Webkit是瀏覽器領域著名的引擎之一, Google Chrome、Apple Safari、Apple IPhone、Symbian S60等瀏覽器均采用了該引擎。
在瀏覽器的網(wǎng)頁渲染的速度和效果,以及對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
在數(shù)據(jù)庫方面,Android采用的是業(yè)界著名的SQLite數(shù)據(jù)庫,SQLite是一個輕量級的交互性數(shù)據(jù)庫,大小在500KB左右,目前主流的數(shù)據(jù)存儲后臺都是基于SQLite的。
5.OpenGL ES
在Android中,3D圖形的渲染支持業(yè)界主流的OpenGL ES 2.0規(guī)范。OpenGL ES 2.0可以有效的利用硬件來進行加速。在實際的操作中,軟件加速采用的是OpenGL ES 1.1規(guī)范,硬件加速采用地是OpenGL ES 2.0規(guī)范。
6.FreeType
FreeType是一個開源、免費、高質量的,且可移植的位圖和字體矢量渲染引擎。它提供了統(tǒng)一的接口來供上層訪問各種字體文件,包括TrueType、OpenType、Type1、CID、CFF、Windows FON/FNT、X11 PCF等。另外FreeType還支持單色位圖、反走樣位圖的渲染。需要說明的是FreeType雖然是基于ANSI C來進行開發(fā)的,但采用的卻是基于面向對象的設計思想,因此在可裁剪性上顯得比較靈活。
7.SGL
SGL為一個基于Android Skia的2D圖像渲染引擎,Google通過收購Skia公司獲得了該技術,并將SGL應用在Chome瀏覽器和Android上。
8.SSL
Android對常用的互聯(lián)網(wǎng)安全協(xié)議提供了支持,支持的標準為Secure Sockets Layer 3.0和Transport Layer Security 1.2。SSL被廣泛地用于Web瀏覽器與服務器之間的身份認證和加密數(shù)據(jù)傳輸。TLS利用密鑰算法在互聯(lián)網(wǎng)上提供端點身份認證與通信保密。