- 语法:
<uses-sdk android:minSdk版本="整数" 安卓:目标Sdk版本="整数"安卓:maxSdk版本="整数" />
- 包含在:
<清单>
- 描述:
- 允许您表达应用程序与一个或多个版本的Android平台的兼容性,通过API级别整数。应用程序表示的API级别将与给定Android系统的API级别,不同的Android设备可能会有所不同。
尽管名称不同,此元素用于指定API级别,不SDK(软件开发工具包)或Android平台的版本号。API级别始终是单个整数。无法从派生API级别其关联的Android版本号(例如,它与主要版本或主要版本和次要版本的总和)。
另请阅读有关的文档对应用程序进行版本控制.
Google Play和<uses-sdk>属性
Google Play过滤用户可见的应用程序,因此用户只能查看和下载与其兼容的应用程序设备。它过滤应用程序的方法之一是通过Android版本兼容性。为此,Google Play将检查<uses-sdk>
每个应用程序清单中的属性,以建立其版本兼容性范围,然后根据与API的比较显示或隐藏应用程序用户的Android系统版本的级别。有关更多信息,请参阅Google Play上的过滤器.
- 属性:
-
android:minSdk版本
- 指定所需最低API级别的整数以运行应用程序。Android系统将阻止用户安装如果系统的API级别低于中指定的值此属性。您应该始终声明此属性。
注意:如果你不申报属性,系统采用默认值“1”,这表示您的该应用程序兼容所有版本的Android。如果您的应用程序是不与所有版本兼容(例如,它使用引入的APIAPI Level 3)中的minSdk版本
,然后,当安装在API级别低于3的系统上时,应用程序尝试访问不可用的API时,将在运行时崩溃。对于因此,请务必在minSdk版本
属性。
android:targetSdk版本
- 指定应用程序目标API级别的整数。如果未设置,则默认值等于给定的值
minSdk版本
.此属性通知系统您已针对目标版本和系统不应启用任何兼容性行为来维护应用程序的转发兼容性目标版本。应用程序仍然能够在旧版本上运行(直至minSdk版本
).
随着Android随着每个新版本的发展,一些行为甚至外观可能会发生变化。但是,如果平台的API级别高于应用程序声明的版本目标Sdk版本
,系统可能会启用兼容性行为,以确保您的应用程序继续按您期望的方式工作。您可以禁用这种兼容性行为,通过指定目标Sdk版本
匹配API运行它的平台的级别。例如,将此值设置为“11”或更高允许系统在Android 3.0或更高,也禁用屏幕兼容性模式在较大屏幕上运行时(因为隐式支持API级别11支持较大屏幕)。
系统可以根据您设置的值启用许多兼容行为用于此属性。其中一些行为由相应的平台版本描述在中生成。版本_代码
参考。
要在每个Android版本中维护应用程序,您应该增加此属性的值以匹配最新的API级别,然后在上彻底测试应用程序相应的平台版本。
引入:API 4级
android:maxSdk版本
- 一个整数,指定应用程序的最大API级别专为跑步设计。
在Android 1.5、1.6、2.0和2.0.1中,系统检查属性,当安装应用程序和重新验证应用程序时系统更新后。在这两种情况下,如果应用程序maxSdk版本
属性低于所使用的API级别则系统将不允许应用程序安装。在系统更新后重新验证的情况下,这有效从设备中删除应用程序。
说明此属性如何在系统之后影响应用程序更新,请考虑以下示例:
应用程序声明maxSdkVersion=“5”
在其中清单发布在Google Play上。设备运行Android的用户1.6(API级别4)下载并安装应用程序。几周后,用户接收Android 2.0(API Level 5)的空中系统更新。在安装更新后,系统将检查应用程序的maxSdk版本
并成功重新验证应用程序正常运行。然而,一段时间后,设备接收另一个系统更新,这次是Android 2.0.1(API Level 6)。在更新时,系统无法再重新验证应用程序,因为系统自己的API级别(6)现在高于应用程序支持的最大值(5). 系统阻止用户在中看到应用程序将其从设备中删除的效果。
警告:声明此属性不是推荐。首先,不需要将属性设置为阻止的手段将应用程序部署到新版本的Android平台上释放。根据设计,该平台的新版本完全向后兼容。您的应用程序应能在新版本上正常工作,前提是它只使用标准API并遵循开发最佳实践。其次,请注意,在某些情况下,声明属性可以导致系统之后,您的应用程序将从用户的设备中删除更新达到更高的API级别。应用程序所在的大多数设备很可能会收到定期的系统更新,所以在设置之前,应该考虑它们对应用程序的影响属性。
引入:API 4级
Android的未来版本(Android 2.0.1之后)将不会更长时间检查或执行maxSdk版本
属性期间安装或重新验证。Google Play将继续使用该属性但是,当向用户提供可用于的应用程序时下载。
- 引入时间:
- API 1级
什么是API级别?
API级别是唯一标识框架API的整数值Android平台版本提供的修订版。
Android平台提供了一个框架API,应用程序可以使用它来与底层Android系统交互。框架API包括:
- 一组核心包和类
- 用于声明清单文件的一组XML元素和属性
- 用于声明和访问资源的一组XML元素和属性
- 一系列意图
- 应用程序可以请求的一组权限以及权限系统中包含的强制
Android平台的每个后续版本都可以包括对它提供的Android应用程序框架API。
对框架API的更新设计为保留新API与早期版本的API兼容。也就是说,API中的大多数更改添加并引入新的或替代功能。作为API的一部分升级,旧的替换部件已弃用,但未移除,因此现有应用程序仍然可以使用它们。在极少数情况下,API的某些部分可能会被修改或删除,尽管这些更改通常是只需要确保API健壮性和应用程序或系统安全。全部早期版本中的其他API部分在没有修改。
Android平台交付的框架API使用称为“API级别”的整数标识符。每个Android平台版本都支持只有一个API级别,尽管对所有早期API级别的支持都是隐式的(降至API 1级)。提供的Android平台的初始版本API Level 1和后续版本增加了API Level。
下表指定了每个版本的Android平台。
Android中API级别的使用
API级别标识符在确保尽可能最佳用户和应用程序开发人员的经验:
- 它允许Android平台描述最大框架API修订它支持的
- 它允许应用程序描述其要求
- 它允许系统协商在用户的设备,从而不安装版本不兼容的应用程序。
每个Android平台版本都在内部存储其API级标识符Android系统本身。
应用程序可以使用框架API提供的清单元素-<uses-sdk>
-描述最小和最大API它们能够运行的级别,以及首选的API级别它们的设计是为了支持。元素提供了三个关键属性:
android:minSdk版本
-指定最低API级别应用程序可以在其上运行。默认值为“1”。
android:targetSdk版本
-指定API级别应用程序在其上运行。在某些情况下,这允许应用程序使用目标中定义的清单元素或行为API级别,而不是仅限于使用定义的那些用于最低API级别。
android:maxSdk版本
-指定最大API级别应用程序可以在其上运行。重要提示:请阅读<uses-sdk>
使用此属性之前的文档。
例如,要指定应用程序的最低系统API级别为了运行,应用程序将在其清单中包含<uses-sdk>
元素,带有android:minSdk版本
属性。的价值android:minSdk版本
将是整数对应于最早版本的Android平台的API级别应用程序可以在其中运行。
当用户尝试安装应用程序时,或当重新验证应用程序在系统更新后,Android系统首先检查<uses-sdk>
应用程序清单中的属性和将这些值与其自身的内部API级别进行比较。系统允许只有在满足以下条件时才能开始安装:
- 如果
android:minSdk版本
属性的值必须小于或等于系统的API级别整数。如果未申报,系统假设应用程序需要API Level 1。
- 如果
android:maxSdk版本
属性的值必须等于或大于系统的API级别整数。如果未声明,系统将假定应用程序没有最高API级别。请阅读<uses-sdk>
有关系统如何处理此属性的更多信息的文档。
当在应用程序的清单中声明时<uses-sdk>
元素可能如下所示:
<清单><uses-sdk android:minSdkVersion=“5”/>...</manifest>
应用程序在中声明API级别的主要原因android:minSdk版本
就是告诉安卓系统使用的API介绍在指定的API级别中。如果应用程序以某种方式安装在API级别较低的平台上,然后,当它试图访问不存在的API时,它将在运行时崩溃。系统通过不允许应用程序如果所需的最低API级别高于目标设备上的平台版本。
例如android.appwidget
程序包是通过API引入的第3级。如果应用程序使用该API,则必须声明android:minSdk版本
属性的值为“3”。这个然后,该应用程序可以安装在Android 1.5(API级别)等平台上3) 和Android 1.6(API级别4),但不适用于Android 1.1(API级别2)和Android 1.0平台(API级别1)。
有关如何指定应用程序的API级别的详细信息要求,请参见<uses-sdk>
清单文件文档的部分。
发展注意事项
以下各节提供了与API级别相关的信息,您应该在开发应用程序时要考虑。
应用程序向前兼容性
Android应用程序通常与新版本的Android平台。
因为几乎所有对框架API的更改都是附加的,所以Android使用API的任何给定版本开发的应用程序(由其指定API级别)与更高版本的Android平台和更高的API级别。应用程序应该能够在所有较新版本上运行Android平台,除非在个别情况下应用程序使用API的一部分,后来由于某种原因被删除。
前向兼容性很重要,因为许多Android设备接收空中传送(OTA)系统更新。用户可以安装您的应用程序并成功使用,然后在以后收到新的OTA更新Android平台的版本。安装更新后,您的应用程序将在环境的新运行时版本中运行,但该版本具有API以及应用程序所依赖的系统功能。
在某些情况下在下面API,例如底层中的API系统本身,在新的环境。因此,作为应用程序,它对您很重要开发人员,了解应用程序在每个系统中的外观和行为环境。帮助您在不同版本的Android上测试应用程序平台,Android SDK包括多个可以下载的平台。每个平台都包含一个兼容的系统映像,您可以在AVD中运行测试应用程序。
应用程序向后兼容性
Android应用程序不一定与版本的Android平台的版本早于编译它们时使用的版本。
Android平台的每个新版本都可以包含新的框架API,例如作为那些让应用程序访问新平台功能或替换现有API部件。在上运行时,应用程序可以访问新的API新平台,如上所述,当在的更高版本上运行时API级别指定的平台。相反,因为早期版本的该平台不包括新的API,使用新API的应用程序无法在这些平台上运行。
虽然Android驱动的设备不太可能降级为平台的早期版本,重要的是要意识到现场可能有许多设备运行早期版本的平台。即使在接收OTA更新的设备中,有些设备可能会延迟和可能在很长一段时间内没有收到更新。
在开发应用程序时,您需要选择编译应用程序所使用的平台版本。在一般来说,您应该根据尽可能低的应用程序可以支持的平台版本。
您可以通过编译应用于连续较低的构建目标。在您确定最低版本,您应该使用相应的平台创建AVD版本(和API级别)并对应用程序进行全面测试。确保声明android:minSdk版本
属性,以及将其值设置为平台版本的API级别。
声明最低API级别
如果您构建的应用程序使用中引入的API或系统功能最新的平台版本,您应该设置android:minSdk版本
属性设置为最新的API级别平台版本。这样可以确保用户只能安装您的应用程序,如果他们的设备运行的是兼容版本的Android平台。反过来,这可以确保应用程序在他们的设备。
如果您的应用程序使用最新平台版本中引入的API,但做不声明android:minSdk版本
属性,然后它将在运行最新版本平台的设备上正常运行,但不在运行早期版本平台的设备上。在后者中在这种情况下,当应用程序尝试使用不需要的API时,它将在运行时崩溃存在于早期版本上。
针对较高API水平进行测试
编译应用程序后,应确保在应用程序中指定的平台android:minSdk版本
属性。为此,创建一个使用所需平台版本的AVD您的应用程序。此外,为了确保转发兼容性,您应该运行并在使用更高API级别的所有平台上测试应用程序由您的应用程序使用。
Android SDK包括多个平台版本,您可以使用,包括最新版本,并提供了一个更新工具,您可以使用它来根据需要下载其他平台版本。
要访问更新程序,请使用安卓
命令行工具,位于<sdk>/tools目录中。您可以通过以下方式启动SDK更新程序执行安卓sdk
。你可以也可以双击android.bat(Windows)或android(OS X/Linux)文件。在ADT中,您还可以通过选择窗口 > 安卓模拟器经理.
要在模拟器中针对不同平台版本运行应用程序,为要测试的每个平台版本创建AVD。更多信息有关AVD的信息,请参阅创建和管理虚拟设备.如果您正在使用物理设备进行测试,请确保您了解API级别它运行的Android平台。请参阅本文档顶部的表格平台版本及其API级别的列表。
使用临时空气污染指数
在某些情况下,可能会提供“Early Look”Android SDK平台。让您开始在平台上开发,尽管API可能不是最终的将不指定平台的API级别整数。您必须使用平台的临时API等级在应用程序清单中,按顺序根据平台构建应用程序。临时空气污染指数水平并非整数,但字符串与未发布平台版本的代码名匹配。临时API水平将在早期版本的发行说明中规定查看SDK发行说明并区分大小写。
临时API级别的使用旨在保护开发人员和设备用户无意中发布或安装基于Early Look框架API,它可能无法在实际设备上正常运行运行最终的系统映像。
临时API级别仅在使用Early Look SDK时有效并且只能用于在模拟器中运行应用程序。应用程序使用临时API级别永远不能安装在Android设备上。在最终发布平台时,必须替换临时的任何实例应用程序清单中的API级别与最终平台的实际API级别整数。
按API级别筛选参考文档
Android开发者网站上的参考文档页面提供了“过滤器“by API Level”控件。您可以使用控件仅显示API中实际属于您的应用程序可以根据它在中指定的API级别进行访问这个android:minSdk版本
其清单文件的属性。
要使用筛选,请选中复选框以启用筛选页面搜索框。然后将“按API级别筛选”控件设置为相同的API应用程序指定的级别。请注意,在后面的然后API级别变灰,其内容被屏蔽,因为它们不会可以访问您的应用程序。
文档中按API级别筛选不提供视图每个API级别中新增或引入的内容-它只是提供了一种方法查看与给定API级别关联的整个API,同时排除API在以后的API级别中引入的元素。
如果您决定不想过滤API文档,只需使用复选框禁用该功能。默认情况下,API级别筛选为禁用,以便您可以查看完整的框架API,而不管API级别如何。
还要注意,各个API元素的参考文档指定引入每个元素的API级别。空气污染指数水平对于包和类,在每个文档页面内容区域的右上角。API级别类成员的详细描述标题中指定,在右边空白处。