2011年2月27日 星期日

Android的API Levels

在開發Android的應用程式的時候

當你要執行開發好的應用程式時

Eclipse常常要你選你要用的API Level

這個API Level到底是什麼呢?

想要一探究竟的人

可以參考Google的原版解說

以下是我看了原版解說後的翻譯與心得
------------------------------------------------------

什麼是API Level呢?


API Level是一個數字
這個數字是用來識別某個版本的Android平台所提供的framework API的修訂版本

Android平台會提供一組Framework API
應用程式可以透過這個API來跟較底層的Android系統來互動

framework API 包含以下所列的這些東西:

  • 一組核心的packages 與classes
  • 一組用來定義一個manifest檔案的XML elements與attributes
  • 一組用來定義可存取的資源的XML elements與attributes
  • 一組 Intents
  • 一組應用程式可以對系統資源做要求(request)的權限
通常來說,一個應用程式可以在level 6的android 平台上執行,那麼他也可以在level 7的android平台上來執行,因為API Level是有向下相容的特定的,也就是Level的等級往上提升
意味著有新的API被開發出來,而舊的API依然可以使用,只是舊的API會被標上deprecated。

*然而在某些數字較小的API Level版本中的一些API有可能已經被移除

通常一個新的framework API被deliver出來的時候,都會相伴的有一個API Level的數字出現
每個android platform都只會跟一個API Level相對應

Platform VersionAPI Level
Android 3.011
Android 2.3.310
Android 2.39
Android 2.28
Android 2.17
Android 2.0.16
Android 2.05
Android 1.64
Android 1.53
Android 1.1 2
Android 1.01


在你的應用程式中,可以在manifest的檔案中註明應用程式所需使用的最低sdk的version是多少,最高是多少來標明哪些版本的android platform可以支援。

在manifest檔案中的這個element就是用來標明所使用的SDK的元素。
在這個元素中提供三個attribute給開發者標明使用的SDK的版本

  • android:minSdkVersion--標明最低可以支援的sdk版本,預設是 "1"
  • android:targetSdkVersion--標明此應用程式主要是以哪個版本的API Level為目標去開發的
  • android:maxSdkVersion--標明最高所使用的API Level是此應用程式可以執行的環境。要使用這個attribute的時候,請先閱讀<uses-sdk>這個element的文件
當你的應用程式要在某個android的platform執行的時候,android platform會先檢查android:minSdkVersion與android:maxSdkVersion這兩個屬性的值(如果你有特別註明的話),android platform的API Level必須在這兩個值之間,才會開始執行你的應用程式,否則將不會執行。

基本上,你可以只在mainfest中宣告android:minSdkVersion這個屬性,而不需要宣告其他兩個屬性。

在發展你的應用程式的時候,應該考慮應用程式的向上與向下相容的可能。

最好在mainfest檔案中註明android:minSdkVersion的屬性值。

在開發的時候,可以用API Level來過濾你參考的document,找出合適的API來使用。


沒有留言:

張貼留言