當你要執行開發好的應用程式時
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 Version | API Level |
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 |
Android 1.1 | 2 |
Android 1.0 | 1 |
在你的應用程式中,可以在manifest的檔案中註明應用程式所需使用的最低sdk的version是多少,最高是多少來標明哪些版本的android platform可以支援。
在manifest檔案中的
在這個元素中提供三個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來使用。
沒有留言:
張貼留言