Android基礎知識之API等級介紹

原文:http://android.eoe.cn/topic/android_sdkhtml

:可讓開發者經過一個表示API級別的整數來描述程序在android平臺上的兼容性,系統會將與系統自己提供的API級別與應用指定的API級別比較。
儘管他有這個名字,可是該元素只是用來指定API級別,並非用來指定SDK或者android平臺的版本號。API級別也是一個整數,可是你不能根據android版本號來追溯API級別(例如,它並不等同於主版本號或是主版本與次版本號的和)。
一樣,請閱讀Versioning Your Applications文檔.android


::http://developer.android.com/assets/images/icon_play.png Google Play 與屬性:api

::Google Play會過濾應用對用戶的可見性,用戶只能看見和下載那些與用戶設備兼容的一些應用。過濾應用的一種方式就是經過Android版本的兼容性。爲此,Google Play會檢查每一個應用的Manifest文件標記的屬性來構建版本兼容性範圍,而後會根據它與用戶Android系統的API級別的比對來決定隱藏或者顯示該應用。能夠參考Filters on Google Play.安全

屬性:app

:android:minSdkVersion
::一個整數來指定程序能夠運行的最小版本。若是用戶系統的API級別小於該屬性指定的值,系統將會阻止用戶來安裝此應用。你應該一直聲明這個屬性。框架

* 注意* :
若是沒有顯示的聲明該屬性,系統指定一個默認值1,代表你的程序兼容Android系統的全部版本。若是應用並非兼容全部的版本的android系統(舉例來講,應用用到了API3 才引用的API),並且你沒有聲明minSdkVersion屬性,當應用安裝到API的級別小於3的系統上且試圖訪問不可用的API時,系統將會異常終止。有鑑於此,請肯定,應用已顯式聲明 minSdkVersion屬性。ide

:android:targetSdkVersion
::一個整數用來指定應用目標的API級別。若是沒有設置,默認值等於minSdkVersion所給的值。
::該值用來告訴系統應用已經在目標版本上進行測試以及系統能夠不啓用任何兼容性行爲來維持你的應用的向前兼容性。應用一樣能夠在老版本上運行(向前一直追溯到minSdkVersion).
::當android演變爲一個新的版本,一些行爲甚至外觀可能會改變。若是,用戶平臺的API級別比應用聲明的targetSdkVersion版本高,系統能夠啓動兼容性行爲來確保你的應用程序繼續以你指望的方式工做。「你能夠經過指定targetSdkVersion與應用可運行的平臺的API等級相匹配來禁用這種兼容性行爲。例如,將值設置爲「11」或更高,容許系統使用一個新的默認主題(總體)到你的應用程序而且禁止
::屏幕兼容模式當程序安裝更大的屏幕上的時候(由於API11隱式的支持更大的屏幕)。工具

::有許多兼容性的行爲是能夠設置的,這些行爲描述能夠參考Build.VERSION_CODES.
::爲了維護您的應用程序沿着每一個Android版本發佈,你應該增長這個屬性的值,以符合最新的API級別,而後在相應平臺版本上完全地測試您的應用程序。測試

:android:maxSdkVersion
::一個整數來制定應用支持的最大的API級別.網站

::在Android1.5,1.6,2.0和2.0.1,系統會在安裝應用程序和系統更新時從新驗證這個屬性的值。在任何狀況下,若是應用程序的maxSdkVersion屬性是低於系統自己所使用的API級別,那麼系統將不容許應用安裝。在系統更新後從新驗證失效後,系統會當即將此應用從設備移除。

::爲了說明這個屬性如何影響系統更新後您的應用程序,考慮下面的例子:
::應用程序在它的manifest聲明maxSdkVersion=「5」,而且發佈在谷歌電子市場。用戶的設備運行Android1.6(API等級4)下載並安裝應用程序。幾個星期以後,用戶接收到Android2.0(API等級5)空中系統更新。安裝更新後,系統會檢查應用程序的的maxSdkVersion,併成功地從新驗證它。應用的功能和正常同樣。然而,一段時間後,設備接收到另外一個系統的更新,升級到Android2.0.1(API等級6)。系統更新後,應用程序不能再經過從新驗證,由於系統自身的API級別(6)如今是高於應用支持的最大的API級別(5)。系統就能夠在用戶可見以前移除該應用.

* 警告* :不建議聲明此屬性。首先:是沒有必要去設置屬性來阻止應用被安裝在新的android平臺上,根據設計,android平臺是徹底向後兼容的,假如你的應用使用標準的API,就應該會在新版本上正常工做.二:請注意,設置這個屬性後,其結果是在系統升級到更高的API等有後,應用將會從用戶的設備上被移除掉。你的應用可能被安裝到的大多數設備,都會收到按期的系統升級信息,在設備這個發生以前,你應該充分考慮到這種狀況對應用影響。.

:介紹在:
::API等級4
:將來版本的Android(超過Android2.0.1的)將再也不檢查或執行安裝過程當中驗證maxSdkVersion屬性。然而,在呈現給用戶可供下載的應用時,電子市場依舊將其做爲做爲一個過濾器使用。。

介紹在:
:API等級1

什麼是API等級

:API等級是由Android平臺提供的用來惟一識別API框架版本號的一個×××數值。.
:Android平臺提供了一個API框架,應用程序可使用其與底層的Android系統進行交互。該框架API包括:
::* 一套核心的包和類
::* 一個XML元素和屬性集來聲明一個manifest文件
::* 一個XML元素和屬性集來聲明訪問的資源
::* 一組intent(意圖工具)
::* 一組系統權限,應用程序能夠請求,也能夠強制容許包含在系統內.
:每一個後續的android平臺會把他提供的更新包含在android API中.
:API升級的模式是設計向後兼容的,因此新的API仍然兼容早期的API版本,也就是說大部分分的變化是新增長API或者對原有的進行替換,例如:部分API被升級,這些老的被棄有,可是不會刪除,使現有的應用程序仍可使用它們。在極少數狀況下,部分的API可能被修改或刪除,這種變化一般只須要確保API的健壯性和應用程序或系統的安全性。全部其餘API部分,無需修改。
:Android平臺提供的API框架指定了一個整數標識符,稱爲「API級別」。雖然每個Android平臺版本精確地支持一個API等級,可是其隱含的支持全部早期的API級別(直至API等級1)。 Android平臺提供的API 初始版本(API等級1)和後續發行版本的API等級是遞增的。
下表指定API級別支持的每一個版本的Android平臺:
<!--之後寫這個表格 fuck 好像又丟了一大段.......-->
{|style="border-spacing: 0px;margin: 4px 4px; width: 90%; border-left:1px solid #ccc;border-top:1px solid #ccc; "

<!-- 這段是表頭 -->
|-style="background:#DEE8F1; "
! style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px" | 平臺等級
! style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px" | API等級
! style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px" | 版本代號
! style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px" | 備註

<!-- 這段是表格 -->
|- style=" vertical-align:top;"
| style=" border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
Android 4.1, 4.1.1
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
16
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
JELLY_BEAN
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
版本特點
<!-- Android 4.0.3, 4.0.4
15
ICE_CREAM_SANDWICH_MR1
Platform
Highlights
-->
|- style=" vertical-align:top;"
| style=" border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
Android 4.0.3, 4.0.4
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
15
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
ICE_CREAM_SANDWICH_MR1
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
版本特點

<!-- Android 4.0, 4.0.1, 4.0.2
14
ICE_CREAM_SANDWICH

-->
|- style=" vertical-align:top;"
| style=" border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
Android 4.0, 4.0.1, 4.0.2
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
14
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
ICE_CREAM_SANDWICH
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |

<!-- Android 3.2
13
HONEYCOMB_MR2
<!-- Platform
-->
|- style=" vertical-align:top;"
| style=" border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
Android 3.2
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
13
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
ICE_CREAM_SANDWICH_MR1
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
版本特點

<!-- Android 3.1.x
12
HONEYCOMB_MR1
Platform Highlights
-->
|- style=" vertical-align:top;"
| style=" border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
Android 3.1.x
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
12
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
HONEYCOMB_MR1
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
版本特點

<!-- Android 3.0.x
11
HONEYCOMB
Platform Highlights
-->
|- style=" vertical-align:top;"
| style=" border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
Android 3.0.x
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
11
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
HONEYCOMB
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
版本特點

<!-- Android 2.3.4Android 2.3.3
10
GINGERBREAD_MR1
Platform
Highlights
-->
|- style=" vertical-align:top;"
| style=" border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
Android 2.3.3
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
10
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
GINGERBREAD_MR1
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
版本特點

<!-- Android 2.3.2Android 2.3.1Android
2.3
9
GINGERBREAD

-->
|- style=" vertical-align:top;"
| style=" border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
Android 2.3
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
9
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
GINGERBREAD
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
版本特點

<!-- Android 2.2.x
8
FROYO
Platform Highlights
-->
|- style=" vertical-align:top;"
| style=" border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
Android 2.2.x
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
8
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
FROYO
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
版本特點

<!-- Android 2.1.x
7
ECLAIR_MR1
Platform
Highlights
-->
|- style=" vertical-align:top;"
| style=" border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
Android 2.1.x
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
7
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
ECLAIR_MR1
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
版本特點

<!-- Android 2.0.1
6
ECLAIR_0_1

-->
|- style=" vertical-align:top;"
| style=" border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
Android 2.0.1
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
6
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
ECLAIR_0_1
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |

<!-- Android 2.0
5
ECLAIR
-->
|- style=" vertical-align:top;"
| style=" border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
Android 2.0
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
5
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
ECLAIR_0_1
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |

<!-- Android 1.6
4
DONUT
Platform Highlights
-->
|- style=" vertical-align:top;"
| style=" border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
Android 1.6
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
4
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
DONUT
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
版本特點

<!-- Android 1.5
3
CUPCAKE
Platform Highlights
-->
|- style=" vertical-align:top;"
| style=" border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
Android 1.5
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
3
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
CUPCAKE
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
版本特點

<!-- Android 1.1
2
BASE_1_1
-->
|- style=" vertical-align:top;"
| style=" border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
Android 1.1
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
BASE_1_1
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |

<!-- Android 1.0
1
BASE

-->
|- style=" vertical-align:top;"
| style=" border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
Android 1.0
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
BASE
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |

|}

在Android中使用API等級

:API級別標識符是一個關鍵角色,是爲了確保最好的體驗給用戶和應用開發人員:

::* 它可讓Android平臺形容它支持的最大API框架版本
::* 它讓應用程序的描述它們須要的API框架版本
::* 它可讓系統判斷用戶的設備上安裝的應用程序,這樣的版本不兼容的應用程序不會被安裝.

:在Android系統中每個Android平臺版本的內部存儲了API等級標識。

:應用程序可使用一個manifest元素,API框架提供的——描述了他們可以運行的最小和最大API級別,以及被設計來支持的首選API級別。該元素提供了三個關鍵屬性:

::* Android:minSdkVersion - 指定應用程序可以運行最低的API級別。默認值是「1」。
::* Android:targetSdkVersion - 指定該應用程序被設計爲運行在API級別。在某些狀況下,容許應用程序使用manifest元素或特定的行爲來制定目標的API級別,而不是被限制只使用最低的API級別的定義。
::* Android:maxSdkVersion - 指定該應用程序是可以運行的最大API級別。重要的是:使用這個屬性以前,請仔細閱讀文件。

"例如,爲了一個應用程序運行須要的最低API級別,應用程序要指定包括在其manifest中的一個Android元素:minSdkVersion屬性。Android:minSdkVersion的值爲一個整數,其對應於該應用能夠運行的最先版本的Android平臺的API等級。。

:當用戶試圖安裝一個應用程序,或者當系統的更新時,Android系統首先檢查應用程序在manifest中的屬性。和自身內部的API級別比較後。若是這些條件獲得知足,應用才能夠被安裝:

::* 若是一個Android:minSdkVersion屬性被聲明,其值必須小於或等於系統的API級別的整數。若是沒有聲明,系統默認應用須要API等級是1。
::* 若是一個Android:maxSdkVersion屬性被聲明,其值必須等於或大於系統的API級別的整數。若是沒有聲明,系統假定該應用程序有沒有最大的API級別。請閱讀文件,以瞭解系統是如何處理這個屬性的。

:當在應用程序的manifest聲明時,的元素可能看起來像這樣:



...

:主要的緣由,應用程序在Android:minSdkVersion 聲明的API等級是告訴Android系統,它使用的API,是在他指定的API級別上引進的。若是應用程序以某種方式安裝在一個較低的API級別的平臺,當它試圖訪問不存在的API,那麼它會在運行時崩潰。該系統能夠防止這種不允許的應用程序被安裝,若是它要求的最低API級別高於目標設備上的平臺版本。

:例如,android.appwidget包被引入的是API等級3。若是應用程序使用了這個API,它必須聲明Android:minSdkVersion屬性值爲「3」。而後,應用程序將安裝到平臺,如Android1.5(API等級3)和Android1.6(API等級4),但不會安裝到Android1.1(API等級2)和Android1.0平臺(API等級1)。

:欲瞭解更多有關如何指定應用程序的API等級要求的信息,見manifest 文件的文檔章節。

開發注意事項

:下面的章節描述了開發應用程序時,你應該考慮的API級別的相關信息。

'''應用向前兼容性

:Android應用程序通常都是向前兼容Android平臺的新版本。

:由於幾乎全部API框架的變化是添加的,Android應用程序開發使用的API的任何版本(例如指定其API級別),都應該是android系統,和API的頂級中向後兼容的,除了在特定的狀況下,應用程序使用後來因爲某種緣由刪除的一部分API,應用程序應該可以運行在全部更高版本的Android平臺上。

:向前兼容性是很是重要的,由於許多基於Android的設備接收空中系統更新(OTA)。用戶能夠安裝你的應用程序,並正常使用,後來收OTA更新到新版本的Android平臺。一旦安裝此更新,您的應用程序將運行在一個新的運行環境,而他有能力提供你的應用依賴的API版本。

:在某些狀況下,API之下的變化,例如那些底層系統自己,可能會在應用程序運行於新的環境中時,影響您的應用程序。出於這個緣由,它是對你很是重要,做爲應用程序開發人員,要明白應用程序在每一個系統環境中的的外觀和行爲。您能夠下載各類版本的Android SDK,來幫助您測試您的應用程序。每一個平臺包括一個兼容的系統映像,是您能夠運行的AVD(android虛擬機),用來測試您的應用程序。

'''應用向後兼容性

:當遇到比對它們進行編譯的版本更舊的Android平臺版本時,Android應用程序不必定是向後兼容的。

:每一個新版本的Android平臺,可能會包括新的框架的API,例如用程序訪問到某些新的平臺功能,或部分被替換的API。根據所指定的API等級,當應用程序運行在新的平臺,或是如前所述,運行在更新平臺版本上時,它能夠訪問那些新的API。相反,因爲平臺的早期版本不包括新的API,使用新的API的應用程序都沒法在這些平臺上運行。

:儘管Android系統的設備將不可能被降級到舊版本的平臺,但重要的是要認識到,在該領域的許多設備可能運行在更早期的平臺上。即便是收到OTA更新的設備,有些人可能會滯後,可能在很長時間裏不會收到更新。

'''選擇一個平臺版本和API等級

:當您正在開發的應用程序,你須要選擇對你編譯應用程序的平臺版本。在通常狀況下,你應該選擇您的應用程序能夠支持的最低的版原本編譯您的應用程序。

:你能夠從最低的版本開始,直到能成功編譯您的應用,來肯定最低版本,而後應該使用相應平臺版本(和API級別)建立AVD來全面測試您的應用程序。確保在應用程序的manifest中聲明瞭Android:minSdkVersion,並將其值設置爲平臺版本的API級別。

'''聲明一個最低的API級別

:若是你創建一個應用程序,使用了最新版本的平臺中引入的API或系統功能,你應該設置Android:minSdkVersion的屬性爲平臺的最新版本的API級別。這可確保用戶只可以在其設備運行在一個可兼容的Android平臺時,才能安裝這個應用程序。反過來,這將確保您的應用程序能夠在他們的設備正常運做。

:若是您的應用程序使用平臺的最新版本中引入的API,但沒有聲明Android:minSdkVersion屬性,而後將正常運行的設備上運行的平臺的最新版本,而不是設備上的平臺上運行的早期版本。。在這種種狀況下,當它試圖使用不存在於早期版本的API,應用程序在運行時會崩潰。

'''對較高的API級別的測試

:編譯您的應用程序以後,您應當確保到應用程序的指定的平臺上測試Android:minSdkVersion屬性。要作到這一點,使用您的應用程序所須要的平臺版本建立AVD。此外,爲了保證向前兼容,你應該使用比您的應用程序所使用的API級別更高的全部平臺上運行和測試。

:Android SDK中包括多個平臺版本,您可使用,包括最新版本,並提供更新,若是須要您可使用其餘平臺版本下載更新的工具。

:要訪問更新,使用Android的命令行工具,位於的/ tools目錄。您能夠經過執行Android SDK的SDK updater。你也能夠簡單地雙擊android.bat(Windows)或Android的的文件(OS X中/ Linux)。在ADT中,你還能夠經過選擇Window> Android SDK的管理器(android sdk manager)來訪問更新。

:要針對運行在不一樣的平臺版本模擬器中的應用,要建立測試每一個平臺版本的AVD。欲瞭解更多有關AVD的信息,請參閱Creating and Managing Virtual Devices。若是您正在使用真實的設備進行測試,確保您知道它運行的Android平臺的API級別。詳見本文件頂部的平臺版本名單和他們的API等級。

使用一個臨時的API級別

在某些狀況下,多是「先睹爲快」的Android SDK平臺。讓你在並非最終API的平臺上進行開發,平臺的API等級整數不會被指定。相反,您必須在您的應用程序'manifest'中臨時使用該平臺的API級別,以創建對平臺的應用。一個臨時的API級別不是一個整數,而是一個字符串匹配的未發行平臺版本的代號。臨時API級別會在‘先睹爲快’的SDK發行說明中指定,而且是區分大小寫的。

使用一個臨時的API級別的設計,以防止應用程序開發人員和設備的用戶不經意間發佈或者安裝基於「先睹爲快」的API框架的應用程序,它可能沒法在使用了最終系統映像的實際設備上正確運行。

臨時的API級別只會對使用「先睹爲快」SDK 是有效的,是隻能用在模擬器中運行的應用程序。一個應用程序使用臨時的API級別將永遠不能被安裝在Android設備上。在最終版本的平臺上,您必須把您應用程序的manifest中全部臨時API級別的實例替換爲最終平臺的實際API級別整數。

使用API級別過濾參考文檔

Android開發者網站上的參考文檔頁面,在每一頁的右上角區域都提供了「API等級過濾器」控制。您可使用它來顯示部分API,您可使用基於manifest文件中Android:minSdkVersion屬性所指定的API等級來控制,以顯示那些你的應用程序能夠訪問的部分API。。

使用複選框以啓用選擇過濾,在低於頁面的搜索框的位置。而後設置「API級過濾器」指定爲您的應用程序相同的API等級。請注意,在更新的API級別推出的API,而後變灰,其內容被屏蔽,由於他們對您的應用程序是不可見的。

文檔中的API等級過濾,並不顯示的什麼是新的或在哪一個API等級中引入的 - 它只是提供了一種方法,經過給定的API等級來查看整個API,同是包括在之後的API級別引入的API元素

若是你不想過濾API文檔,只需使用複選框來禁用該功能。默認狀況下,API級過濾被禁用,這樣您就能夠查看完整的框架API,而不考慮API級別。

還要注意的是在單獨的API元素參考文件中申明瞭每一個元素,包和類的被引入的API級別,被指定爲「Since 」,並放在每一個文檔頁面內容區域的右上角的包。類成員的API等級則在他們詳細的描述標題中指定,在靠近右邊框的地方。

相關文章
相關標籤/搜索