1、Android API Levels As you develop your application on Android, its useful to understand the platforms general approach to API change management. Its also important to understand the API Level identifier and the role it plays in ensuring your applications compatibility with devices on which it may be
2、 installed. The sections below provide information about API Level and how it affects your applications. For information about how to use the Filter by API Level control available in the API reference documentation, see Filtering the documentation at the end of this document. What is API Level? API
3、Level is an integer value that uniquely identifies the framework API revision offered by a version of the Android platform. The Android platform provides a framework API that applications can use to interact with the underlying Android system. The framework API consists of: A core set of packages an
4、d classes A set of XML elements and attributes for declaring a manifest file A set of XML elements and attributes for declaring and accessing resources A set of Intents A set of permissions that applications can request, as well as permission enforcements included in the system Each successive versi
5、on of the Android platform can include updates to the Android application framework API that it delivers. Updates to the framework API are designed so that the new API remains compatible with earlier versions of the API. That is, most changes in the API are additive and introduce new or replacement
6、functionality. As parts of the API are upgraded, the older replaced parts are deprecated but are not removed, so that existing applications can still use them. In a very small number of cases, parts of the API may be modified or removed, although typically such changes are only needed to ensure API
7、robustness and application or system security. All other API parts from earlier revisions are carried forward without modification. The framework API that an Android platform delivers is specified using an integer identifier called API Level. Each Android platform version supports exactly one API Le
8、vel, although support is implicit for all earlier API Levels (down to API Level 1). The initial release of the Android platform provided API Level 1 and subsequent releases have incremented the API Level. The following table specifies the API Level supported by each version of the Android platform.
9、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 Uses of API Level in Android The API Level identifier serves a key role in ensuring the best possible experience
10、for users and application developers: It lets the Android platform describe the maximum framework API revision that it supports It lets applications describe the framework API revision that they require It lets the system negotiate the installation of applications on the users device, such that vers
11、ion-incompatible applications are not installed. Each Android platform version stores its API Level identifier internally, in the Android system itself. Applications can use a manifest element provided by the framework API to describe the minimum and maximum API Levels under which they are able to r
12、un, as well as the preferred API Level that they are designed to support. The element offers three key attributes: android:minSdkVersion Specifies the minimum API Level on which the application is able to run. The default value is 1. android:targetSdkVersion Specifies the API Level on which the appl
13、ication is designed to run. In some cases, this allows the application to use manifest elements or behaviors defined in the target API Level, rather than being restricted to using only those defined for the minimum API Level. android:maxSdkVersion Specifies the maximum API Level on which the applica
14、tion is able to run. Important: Please read the documentation before using this attribute. For example, to specify the minimum system API Level that an application requires in order to run, the application would include in its manifest a element with a android:minSdkVersion attribute. The value of a
15、ndroid:minSdkVersion would be the integer corresponding to the API Level of the earliest version of the Android platform under which the application can run. When the user attempts to install an application, or when revalidating an appplication after a system update, the Android system first checks
16、the attributes in the applications manifest and compares the values against its own internal API Level. The system allows the installation to begin only if these conditions are met: If a android:minSdkVersion attribute is declared, its value must be less than or equal to the systems API Level intege
17、r. If not declared, the system assumes that the application requires API Level 1. If a android:maxSdkVersion attribute is declared, its value must be equal to or greater than the systems API Level integer. If not declared, the system assumes that the application has no maximum API Level. Please read
18、 the documentation for more information about how the system handles this attribute. When declared in an applications manifest, a element might look like this: . The principal reason that an application would declare an API Level in android:minSdkVersion is to tell the Android system that it is usin
19、g APIs that were introduced in the API Level specified. If the application were to be somehow installed on a platform with a lower API Level, then it would crash at run-time when it tried to access APIs that dont exist. The system prevents such an outcome by not allowing the application to be instal
20、led if the lowest API Level it requires is higher than that of the platform version on the target device. For example, the android.appwidget package was introduced with API Level 3. If an application uses that API, it must declare a android:minSdkVersion attribute with a value of 3. The application
21、will then be installable on platforms such as Android 1.5 (API Level 3) and Android 1.6 (API Level 4), but not on the Android 1.1 (API Level 2) and Android 1.0 platforms (API Level 1). For more information about how to specify an applications API Level requirements, see the section of the manifest file documentation.