`

AndroidManifest.xml文件详解(uses-sdk)

 
阅读更多

语法(SYNTAX):

<uses-sdkandroid:minSdkVersion="integer"
android:
targetSdkVersion="integer"
android:maxSdkVersion="integer"/>

被包含于(CONTAINED IN):

<manifest>

说明(DESCRIPTION):

这个元素用API 的级别(一个整数)来说明应用程序会跟哪些Android平台版本兼容。由应用程序给出的API级别会跟给定不同的设备中的Android系统的API级别比较。

尽管这个元素被用于指定API的级别,但它并不是SDK(软件开发工具包)或Android平台的版本号。API级别始终是用一个整数表示。不能够从根API级别关联的Android版本号中获取API级别信息(例如,它不是主版本号,也不是主版本号和次版本号的和)。

属性(ATTRIBUTES):

android:minSdkVersion

一个整数,它指定了应用程序运行所需要的最小的API级别。如果Android系统的API级别被该应用程序清单中的这个属性值小,那么系统就阻止安装该应用程序,应该始终声明这个属性。

警告:如果没有声明这个属性,Android系统就会假设一个默认值1,它表明该应用程序会跟所有的Android版本兼容。如果应用不是跟所有的Android版本兼容(例如,应用要使用在API Level 3中引入的API),并且也没有声明正确的minSdkVersion属性,那么当应用安装到API Level 3小的系统上时,应用程序会在视图访问无效的API时崩溃。由于这个原因,必须要在minSdkVersion属性中声明适当的API Level。

android:targetSdkVersiion

一个整数,它指定了应用程序要运行的目标的API级别。如果没有设置,它的默认值等于给定的minSdkVersion属性值。

这个属性用于通知系统,应用测试时所针对的目标平台版本,并且系统不应该启用任何兼容行为来维护应用程序跟目标平台版本的向前兼容性。应用程序依然能够运行在较低版本的平台上(一直到minSdkVersion属性值所指定的版本)。

在Android演进的每个新版本中,都会有一些行为甚至外观的改变。但是,如果平台的API级别比应用程序声明的targetSdkVersion的值大,那么系统就可以启用兼容行为,以便确保应用程序能够继续执行期望的工作。因此,可以通过指定应用程序所运行的目标SDK版本(targetSdkVersion)来禁止启用这种兼容行为,例如,把这个属性值设置为11或更大,就会允许系统把新的默认主题应用给在Android3.0或更高版本平台之上的应用程序,并且在运行在较大屏幕的设备上时,也禁止使用屏幕兼容模式(因为针对API Level 11的支持,暗示着对较大屏幕的支持)。

系统会基于这个属性所设置的值,启用很多兼容行为。这些行为的一些内容通过相应平台版本的Build.VERSION_CODES参考来描述。(http://developer.android.com/reference/android/os/Build.VERSION_CODES.html

应用程序为了跟随每个Android的发布版本,应该增长这个属性值,让它跟最新的API级别相匹配,然后再对应的平台版本上进行完整的测试。

这个属性在API Leve 4中被引入。

android:maxSdkVersion

一个整数,表明该应用要运行的最大的API Level。

在Android1.5、1.6、2.0和2.0.1中,在安装应用程序时,系统会检查这个值,并且在系统升级后也会重新验证该应用程序的这个值。另外,如果应用程序的maxSdkVersion属性值比系统自身所使用的API Level低,那么系统就不会允许应用程序被安装,在因系统升级而重新验证的情况中,这种情况所带来的影响是把该应用程序从设备上删除。

以下是系统升级更新后,这个属性是如何影响应用程序的例子:

一个发布到Google Play上的应用程序,在它的清单中声明了maxSdkVersion=”5”。一个运行Android1.6(API Level 4)的用户设备下载并安装了该应用程序。几周之后,用户把系统升级到Android2.0(API Level 5),升级后,系统会检查应用程序的maxSdkVersion属性,并成功的重新的验证了它。该应用程序能够正常运行。但是,不久之后,该设备的系统又升级到Android2.0.1(API Level 6),升级之后的系统,不能在重新验证该应用程序了,因为系统自己的API Level(6)比该应用程序所支持的最大API Level还有大,因此系统会阻止把该应用程序显示给用户,就像把该应用程序从设备删除的效果一样。

警告:不推荐声明这个属性,首先,没有必要设置这个属性是因为,这样会阻止该应用程序在新发布的Android平台版本上运行。通过设计,新的平台版本时完全向后兼容的。该应用程序应该在升级后的平台上能够正常运行。其二,要注意的是,在某些情况中,声明这个属性在用户设备的系统升级较高的API Level之后,能够导致该应用程序被删除。大多数应用所在的设备都会定期的接到在线升级的请求,因此在设置这个属性之前,要仔细考虑该属性给应用程序所带来的影响。

在Android的未来版本中(Android2.0.1除外),在安装或重验证期间,将不再检查或强制要求maxSdkVersion属性。但Google Play在把应用程序展示给用户下载的时候,会继续使用这个属性作为过滤条件。

这个属性在API Level 4中被引入。

引入版本(INTRODUCED IN):

API Level 1

分享到:
评论

相关推荐

    AndroidManifest.xml文件详解

    ### AndroidManifest.xml 文件详解 #### 一、关于 AndroidManifest.xml `AndroidManifest.xml` 是 Android 应用程序中不可或缺的一部分,通常位于项目的根目录下。该文件定义了应用程序的架构和元数据,包括应用...

    学习笔记之AndroidManifest.xml文件解析.docx

    二、AndroidManifest.xml 文件的节点详解 ### `&lt;manifest&gt;` 节点 * `xmlns:android`:定义了 Android 命名空间,一般为 http://schemas.android.com/apk/res/android。 * `package`:指定了应用程序的包名,也是...

    AndroidManifest.xml文件综合详解[整理].pdf

    《AndroidManifest.xml文件综合详解》 AndroidManifest.xml文件是Android应用程序的核心组成部分,它包含了应用程序的全局配置信息,是每个Android应用不可或缺的文件。这个文件的作用在于向Android系统提供应用...

    Manifest详解

    "AndroidManifest.xml 详解" AndroidManifest.xml 是 Android 应用程序中最重要的文件之一,它位于项目的根目录,描述了应用程序中的组件、权限、Intent-filter 和其他配置信息。下面是对 AndroidManifest.xml 的...

    2AndroidManifest文件介绍.docx

    ### AndroidManifest.xml 文件详解 #### 一、概览 在Android应用开发中,`AndroidManifest.xml`文件扮演着至关重要的角色。它不仅是应用程序的核心配置文件,还是应用与Android系统进行沟通的重要桥梁。通过该文件...

    详解OkSocket与Android的简单使用

    在使用OkSocket之前,需要在AndroidManifest.xml中添加权限。 &lt;uses-permission android:name="android.permission.INTERNET"/&gt; &lt;uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/&gt; 四、...

    初试PhoneGap开发框架

    - 根据实际需求继续完善`AndroidManifest.xml`文件,例如添加更多的权限声明或进行更详细的配置。 #### 四、总结 通过以上步骤,我们可以成功地创建了一个基于PhoneGap的Android项目,并实现了基本的功能。这个...

    opencv androidstudio开发

    - 在`AndroidManifest.xml`文件中,将`&lt;uses-sdk android:minSdkVersion="..."&gt;`的值改为你在第5步记录下来的值。 **9. 解决权限问题** 某些设备在运行应用时可能会提示相机权限被拒绝的问题。这时需要前往手机的...

Global site tag (gtag.js) - Google Analytics