|
API級(jí)別是什么 當(dāng)你開(kāi)發(fā)你的Android應(yīng)用程序時(shí),了解該平臺(tái)API變更管理的基本方法和概念是很有幫助的。同樣的,知道API級(jí)別標(biāo)識(shí)以及該標(biāo)識(shí)如何保障你的應(yīng)用與實(shí)際硬件設(shè)備相兼容對(duì)于開(kāi)發(fā)及后續(xù)的發(fā)布、維護(hù)都是有益的。API級(jí)別是一個(gè)整數(shù)值,它唯一標(biāo)識(shí)了一個(gè)具體版本的Android平臺(tái),及其框架的API的版本。 Android平臺(tái)提供了一套框架API,使得應(yīng)用程序可以與系統(tǒng)底層進(jìn)行交互。該框架API由以下模塊組成:
每個(gè)Android平臺(tái)的后續(xù)版本會(huì)包括它提供的更新的Andr??oid應(yīng)用程序框架的API。 該框架的API的更新設(shè)計(jì),使高版本的API與早期版本兼容。也就是說(shuō),在新版本API中大多數(shù)都是新增功能,和引進(jìn)新的或替代的功能。作為API的部分升級(jí),老的替換的部分已過(guò)時(shí),但不會(huì)從新版本中刪除,使得已有的應(yīng)用程序仍然可以使用它們。在極少數(shù)情況下,舊版本API的部分可能被修改或刪除,通常這種變化是為了保障API的穩(wěn)定性及應(yīng)用程序或系統(tǒng)的安全。所有其他早期版??本的API將不做修改的保留。 一個(gè)Android平臺(tái)提供的框架API,被指定一個(gè)整數(shù)標(biāo)識(shí)符,稱為“API級(jí)別”。每一個(gè)版本的Android平臺(tái)只支持有一個(gè)API級(jí)別,雖然該支持是隱含地包括了所有早期的API級(jí)別(一直到API級(jí)別1級(jí))。 Andr??oid平臺(tái)的最初版本提供的框架API級(jí)別是1級(jí),隨后的版本依次遞增。 下表說(shuō)明了具體平臺(tái)版本和支持的API級(jí)別的對(duì)應(yīng)關(guān)系。
平臺(tái)版本 API級(jí)別
android 3.0 11 android 2.3.3 10 android 2.3 9 android 2.2 8 android 2.1 7 android 2.0.1 6 android 2.0 5 android 1.6 4 android 1.5 3
每個(gè)版本的Android平臺(tái)都在其內(nèi)部存儲(chǔ)了自己的API級(jí)別標(biāo)識(shí)。 應(yīng)用程序可以用框架API提供的清單文件元素 —
用戶嘗試安裝一個(gè)應(yīng)用程序,或者在系統(tǒng)升級(jí)后重驗(yàn)證應(yīng)用程序的時(shí)候,Android系統(tǒng)首先會(huì)檢查應(yīng)用程序的清單文件中的<uses-sdk>屬性,將其與系統(tǒng)內(nèi)部API級(jí)別對(duì)比。系統(tǒng)只有在滿足下列情況時(shí)才允許進(jìn)行應(yīng)用程序安裝:
應(yīng)用程序清單文件中聲明該屬性后, 這樣做的主要原因是,應(yīng)用程序會(huì)通過(guò)android:miniSdkVersion聲明的API級(jí)別來(lái)告知系統(tǒng)——該應(yīng)用程序使用的API是指定引入的API級(jí)別。假如沒(méi)有這種屬性聲明,一個(gè)應(yīng)用程序如果因?yàn)槟承┎恢脑虮话惭b在低級(jí)別API系統(tǒng)之上,那么該應(yīng)用程序會(huì)在運(yùn)行時(shí)因?yàn)閲L試訪問(wèn)不存在的API而崩潰。為此,Android系統(tǒng)通過(guò)不允許應(yīng)用程序被安裝在不滿足其最低API級(jí)別要求的目標(biāo)硬件上來(lái)防止此類結(jié)果發(fā)生。 例如, |
|
|