欢迎访问移动开发之家(rcyd.net),关注移动开发教程。移动开发之家  移动开发问答|  每日更新
页面位置 : > > > 内容正文

ANDROID标签USES-SDK的详细说明,android标签uses-sdk,属性说明:android

来源: 开发者 投稿于  被查看 38075 次 评论:215

ANDROID标签USES-SDK的详细说明,android标签uses-sdk,属性说明:android


QQ截图20150323155555.png

uses-sdk是Android配置文件AndroidManifest.xml中一个十分重要的标签,它起到标识应用的使用API范围的作用,
Android中该标签的使用语法为:
uses-sdk android:minSdkVersion="integer"
          android:targetSdkVersion="integer"
          android:maxSdkVersion="integer" 

它是配置文件中放在标签之前的一个标签。

属性说明:

    android:minSdkVersion

值类型为整型,它指明了应用运行所需的最小API水平。如果系统的API水平小于本属性所声明的值,那么Android系统将阻止用户安装该应用。如果没有声明这个属性,系统将假定其默认值为”1”,将标明你的应用兼容于所有版本的Android。如果你的应用不兼容于所有系统(例如,它使用了API 3中引入的API)而你没有声明合适的minSdkVersion,然后在安装在API水平小于3的系统上时,该应用将在运行时尝试访问不可用API时崩溃。因为这个原因,确保在minSdkVersion属性要声明恰当的API水平。

    android:targetSdkVersion

值类型为整型,它指明了应用的目标API。如果没有设置的话,默认值将等于minSdkVersion。这个属性告知了系统你要测试的目标版本以及系统不应用开启任何兼容行为来维持你的应用的向前兼容性。这个应用依然能够运行在更早的版本上(最小版本等于minSdkVersion)。因为Android随每一次新版本而进化,一些行为甚至外观都可能发生变化。然而,如果平台的API水平高于应用targetSdkVersion所声明的版本,系统将开启兼容行为以确保应用继续地按照你所期料的方式运行。你可以通过改动targetSdkVersion来匹配应用将要运行的平台的API水平来关闭这种兼容行为。例如,设置该值为或更高以允许系统应用新的默认主题(Holo)到你的应用上面,当运行在Android 3.0+上面的时候。也可以在运行在更大屏幕上面时关闭”屏幕兼容模式”。基于你为该属性设置的值,系统可能会开启许多兼容行为。有些行为已经在相应的平台版本(在Build.VERSION_CODES)上面有所描述。为了维护你的应用在每一个发布版Android上面都可以运行,你应用递增该属性值以匹配最新的API水平,以便在相应的平台版本上面进行测试。

    android:maxSdkVersion

值类型为整型,它指明了应用设计运行的最大API水平。在Android 1.5, 1.6, 2.0和2.1中,在安装应用或者系统升级之后重新验证该应用时,系统检测该属性值。在这两种情况下,如果应用的该属性值小于系统本身所用的API水平,那么系统将不允许该应用安装。在系统更新之后的重新验证的情况下,你的应用将从所在设置上被删除。为了说明在系统更新之后该属性值如何影响你的应用,考虑下面这个例子:
一个配置文件中声明了maxSdkVersion=”5”的应用发布在了Google Play上面。使用运行了Android 1.6(API 4)的用户下载了该应用。几周过后,该用户收到了在线系统更新到Android 2.0(API 5)。在更新安装之后,系统检测应用的maxSdkVersion并且成功地重新检测了该应用。应用运行正常。然而一段时间之后,设置接收了另一个系统更新,这次到Android 2.0.1(API 6)。更新之后,系统不再能够重新验证该应用因为系统自身的API(6)高于应用支持的最大API(5)。系统将阻止该应用对用户可见,有效从设备中删除。声明该属性是不被推荐的。首先,没有必要设置该属性作为阻止你的应用部署到新版本Android平台上面的方式。从设置上而言,新版本平台是完全向后兼容的。你的应用应该在新版本上面工作正常,尽管它仅仅使用了标准API并遵循了最佳开发实践。其次,请注意在某些情况下,声明该属性将导致该应用在用户系统更新到更高API之后从设备上删除。你的应用可能安装的大多数设备接收到阶段性的在线系统更新,所以,在设置该属性之前你应用考虑该属性对你应用的影响。未来版本的Android将在安装或者重新验证期间不再检测或者强制声明该属性。然而,Google Play将持续使用该属性作为一个过滤器,以阻止用户下载。


原文

用户评论