官术网_书友最值得收藏!

1.1.4 核心類(lèi)庫(kù)

對(duì)于框架層而言,核心類(lèi)庫(kù)就是它的“賢內(nèi)助”。每一次Android系統(tǒng)升級(jí),能看到的都是框架層SDK的變遷,增加了新的功能,提供了新的接口。而在這些新功能的背后,核心類(lèi)庫(kù)都是居功至偉。

核心類(lèi)庫(kù)由一系列的二進(jìn)制動(dòng)態(tài)庫(kù)共同構(gòu)成,通常使用C/C++進(jìn)行開(kāi)發(fā)。與框架層的系統(tǒng)服務(wù)相比,核心類(lèi)庫(kù)不能夠獨(dú)立運(yùn)行于線程中,而需要被系統(tǒng)服務(wù)加載到其進(jìn)程空間里,通過(guò)類(lèi)庫(kù)提供的JNI接口進(jìn)行調(diào)用。

核心類(lèi)庫(kù)的來(lái)源主要有兩種,一種是系統(tǒng)原生類(lèi)庫(kù),Android為了提高框架層的執(zhí)行效率,使用C/C++來(lái)實(shí)現(xiàn)它的一些性能關(guān)鍵模塊,如:資源文件管理模塊、基礎(chǔ)算法庫(kù),等等。而另一種則是第三方類(lèi)庫(kù),大部分都是對(duì)優(yōu)秀開(kāi)源項(xiàng)目的移植,它們是Android能夠提供豐富功能的重要保障,如:Android的多媒體處理,依賴(lài)于開(kāi)源項(xiàng)目OpenCOREOpenCORE的官方主頁(yè)是:http://www.opencore.net/。的支持;瀏覽器控件的核心實(shí)現(xiàn),是從WebkitWebkit的官方主頁(yè)是:http://www.webkit.org/。移植而來(lái);而數(shù)據(jù)庫(kù)功能,則是得益于SqliteSqlite的官方主頁(yè)是:http://www.sqlite.org/。。Android會(huì)為所有移植而來(lái)第三方類(lèi)庫(kù)封裝一層JNI接口,以供框架層調(diào)用。

為了幫助游戲和圖形圖像處理等領(lǐng)域的開(kāi)發(fā)者搭建更高效的應(yīng)用,Android將數(shù)學(xué)函數(shù)庫(kù)、OpenGL庫(kù)等核心類(lèi)庫(kù)以NDK的形式提供給開(kāi)發(fā)者,開(kāi)發(fā)者可以基于NDK更高效地構(gòu)建算法,進(jìn)行圖形圖像繪制。從實(shí)踐的角度看,只要能獲取到底層類(lèi)庫(kù)的頭文件信息,開(kāi)發(fā)者就可以逾越NDK的界限,用其他核心類(lèi)庫(kù)的接口進(jìn)行開(kāi)發(fā)。但這樣做的危險(xiǎn)之處在于兼容性差,Android在版本變遷時(shí),可能會(huì)替換或修改一些類(lèi)庫(kù)接口或?qū)崿F(xiàn),這就會(huì)導(dǎo)致依賴(lài)于這些類(lèi)庫(kù)的應(yīng)用無(wú)法運(yùn)行。而NDK提供的都是穩(wěn)定的類(lèi)庫(kù)實(shí)現(xiàn),不會(huì)再做修改,以保證使用NDK的應(yīng)用具有向上的兼容性。

主站蜘蛛池模板: 宁强县| 尚志市| 新兴县| 武川县| 元阳县| 沙坪坝区| 永城市| 盐城市| 平凉市| 剑河县| 五华县| 和田县| 元朗区| 府谷县| 平顺县| 侯马市| 商河县| 辰溪县| 穆棱市| 蕉岭县| 满洲里市| 乌鲁木齐市| 仁寿县| 盐山县| 札达县| 巴彦淖尔市| 抚顺市| 亳州市| 盐边县| 都昌县| 宁远县| 屏东县| 光山县| 陆河县| 临武县| 奉新县| 罗江县| 长顺县| 惠水县| 招远市| 呼伦贝尔市|