语法(SYNTAX):

 <uses-sdk android: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属性值。作用:

  • 告诉系统,针对目标版本已经做了检测。
  • 针对目标版本,系统不应该让兼容性行能够维持app的前向兼容性。
  • app依然能够运行在较低版本的平台上(直到minSdkVersion属性值所指定的版本)。

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

有很多兼容行为,系统是基于这个属性所设置的值启用的。这些行为中的一些被描述在相应平台版本(参考Build.VERSION_CODES)。

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

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

android:maxSdkVersion

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

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

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

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

警告:不推荐声明这个属性。首先,没有必要设置这个属性是因为会阻碍app在新发布的Android平台版本上部署。新的平台版本是被设计为完全向后兼容的。只要使用标准的API和遵循Best Practices,app能在新Anroid版本正常运行。其次,要注意的是,声明这个属性会导致一个结果——在系统更新到较高的API Level之后,app可能会从用户设备中删除。

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

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

Android——<uses-sdk>的更多相关文章

  1. SDK接入(1)之Android Facebook SDK接入

    SDK接入(1)之Android Facebook SDK接入 由于游戏已上线,且处于维护阶段,所以有空写写各种SDK接入过程和遇到的问题,也当作一种工作总结.SDK接入主流分为这么几类,登录.支付. ...

  2. 同步、更新、下载Android Source & SDK from 国内镜像站(转载)

    同步.更新.下载Android Source & SDK from 国内镜像站 转自: 同步.更新.下载Android Source & SDK from 国内镜像站 Download ...

  3. Android之SDK、NDK、JNI和so文件

    1.     SDK Android SDK(AndroidSoftware Development Kit),即Android软件开发工具包,Android的SDK基于Java实现,这意味着基于An ...

  4. 同步、更新、下载Android Source & SDK from 国内镜像站

    转自: 同步.更新.下载Android Source & SDK from 国内镜像站 Download the android source from china mirrors     以 ...

  5. 转-android 支付宝SDK集成

    http://blog.csdn.net/kroclin/article/details/40746779 一.前言 最近做的项目刚好要集成支付宝,上网找了很多资料,介绍得感觉不是很全面,所以我经过这 ...

  6. Android安装 sdk+jdk+Eclipse+Adt开发工具

    根据别人提供的手册和安装过程体验加以更新和详细描述 安装Android开发工具 开发Android应用程序的门坎并不高,因为Google已经为Android应用程序开发提供了免费而且跨平台的集成开发环 ...

  7. 【Android类型SDK测试(二)】环境基础

    (一)语言 Android使用的Java语言,所以要测试Android类型的SDK,Java的基础知识还是需要的. 另外,Android中有NDK类型的编程,需要知道C相关的知识. (二)环境准备 A ...

  8. 【Android类型SDK测试(一)】认识Android类型的 SDK

    (一)SDK是个什么东东 接触软件相关行业的同学都应该知道,SDK(即 Software Development Kit),软件开发包.其作用就是为开发某些软件提供一些便利的东西,包括工具 集合,文档 ...

  9. Android L SDK -- 一些有趣的新功能

    一些普通的就不提了,自己查看最新的文档就可以 文档地址 Task locking 功能:让我们在使用一个应用时,能够免受通知(消息)的打搅. 怎样使用:当我们在应用中激活任务锁模式.我们接收到的通知( ...

  10. 安装Android的SDK

    安装Android的SDK 1.首先,下载installer_r23.0.2-windows.exe 2.双击"installer_r23.0.2-windows.exe",进入A ...

随机推荐

  1. Python学习day15-函数进阶(3)

    figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { position: relative; } img { max- ...

  2. WPF界面设计中常用的一些代码片段及属性

    一.窗体去掉标题栏.消除掉标题栏后的白边,把窗体置于屏幕中间,窗口大小不能改变. WindowStyle="None" AllowsTransparency="True& ...

  3. Unity 用代码设置UGUI的渲染层级

    用代码设置UGUI渲染无非和三个API有关: 1.SetAsFirstSibling(); 2.SetAsLastSibling(); 3.SetSiblingIndex(n) SetAsFirstS ...

  4. python中如何去除列表中重复元素?

    方法一: 用内置函数set: list1 = [1, 2, 3, 3, 4, 4, 5, 6, 6, 6, 7, 8, 9] list2 = list(set(list1)) print(list2) ...

  5. Fiilter

    过滤器 过滤请求和响应 作用:        自动登录.        统一编码.        过滤关键字        .... Filter是一个接口 编写filter步骤: 1.编写一个类 a ...

  6. Gartner首推机密计算:阿里云名列其中

    近日,全球信息技术研究机构Gartner发布了2019年云安全技术成熟度曲线报告(Gartner, Hype Cycle for Cloud Security, 2019, Jay Heiser, S ...

  7. #include <filename.h> 和 #include“filename.h” 有什么区别

    对于#include <filename.h> ,编译器从标准库路径开始搜索filename.h,对于#include “filename.h” ,编译器从用户的工作路径开始搜索filen ...

  8. ES5-ES8 数组拥有的方法

    1.判断是否是数组 Array.isArray( arg ) 有兼容性 2.toString 数组转字符串 arr.toString(); 3.join 数组每一项间的拼接 arr.join(); S ...

  9. 19-10-18-Y

    ZJ一下: 感觉能拿到的分都拿到了,至于后来改题就缶了 其实是:太tui导致没改好 TJ: T1: 正解是$\mathsf{KMP}$,但是广大群众都用了$\mathsf{hash}$…… 发现了一个 ...

  10. 官方 NSIS 插件全集简单介绍

    Math plugin (contain examples) -- 数学函数插件,NSIS 软件已包含,这个不用说了吧,计算的时候必用. System plugin (contain examples ...