Android——<uses-sdk>
语法(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>的更多相关文章
- SDK接入(1)之Android Facebook SDK接入
SDK接入(1)之Android Facebook SDK接入 由于游戏已上线,且处于维护阶段,所以有空写写各种SDK接入过程和遇到的问题,也当作一种工作总结.SDK接入主流分为这么几类,登录.支付. ...
- 同步、更新、下载Android Source & SDK from 国内镜像站(转载)
同步.更新.下载Android Source & SDK from 国内镜像站 转自: 同步.更新.下载Android Source & SDK from 国内镜像站 Download ...
- Android之SDK、NDK、JNI和so文件
1. SDK Android SDK(AndroidSoftware Development Kit),即Android软件开发工具包,Android的SDK基于Java实现,这意味着基于An ...
- 同步、更新、下载Android Source & SDK from 国内镜像站
转自: 同步.更新.下载Android Source & SDK from 国内镜像站 Download the android source from china mirrors 以 ...
- 转-android 支付宝SDK集成
http://blog.csdn.net/kroclin/article/details/40746779 一.前言 最近做的项目刚好要集成支付宝,上网找了很多资料,介绍得感觉不是很全面,所以我经过这 ...
- Android安装 sdk+jdk+Eclipse+Adt开发工具
根据别人提供的手册和安装过程体验加以更新和详细描述 安装Android开发工具 开发Android应用程序的门坎并不高,因为Google已经为Android应用程序开发提供了免费而且跨平台的集成开发环 ...
- 【Android类型SDK测试(二)】环境基础
(一)语言 Android使用的Java语言,所以要测试Android类型的SDK,Java的基础知识还是需要的. 另外,Android中有NDK类型的编程,需要知道C相关的知识. (二)环境准备 A ...
- 【Android类型SDK测试(一)】认识Android类型的 SDK
(一)SDK是个什么东东 接触软件相关行业的同学都应该知道,SDK(即 Software Development Kit),软件开发包.其作用就是为开发某些软件提供一些便利的东西,包括工具 集合,文档 ...
- Android L SDK -- 一些有趣的新功能
一些普通的就不提了,自己查看最新的文档就可以 文档地址 Task locking 功能:让我们在使用一个应用时,能够免受通知(消息)的打搅. 怎样使用:当我们在应用中激活任务锁模式.我们接收到的通知( ...
- 安装Android的SDK
安装Android的SDK 1.首先,下载installer_r23.0.2-windows.exe 2.双击"installer_r23.0.2-windows.exe",进入A ...
随机推荐
- JS和JQuery概括
1. BOM 1. location相关 1. location.href 2. location.href="http://www.sogo.com" 3. location.r ...
- springmvc-@RequestBody无法映射首字母大写的属性
@RequestBody可以将前台传入的json格式数据自动映射成对象,当如果属性的首字母大写,则会出现不能映射的情况,如: private String ICCID;会出现映射失败的情况 解决办法: ...
- 更新CM版本
照着这个文章搭建的 https://blog.csdn.net/sinat_32176947/article/details/79597073 需要注意问题有 离线需要自己配置yum 地址base地址 ...
- kafka一些问题点的分析
kakfka架构图: 理解kafka需要理解三个问题. 1.producer,broker,consumer,ZK的工作模式. broker,ZK是作为一个后台服务,而producer和consume ...
- Lp- Linux必学的60个命令
1.作用 lp是打印文件的命令,使用权限是所有用户. 2.格式 lp [-c][-d][-m][-number][-title][-p] 3.主要参数 -c:先拷贝文件再打印. -d:打印队列文件. ...
- 写js过程中遇到的一个bug
<div class="func_Div" id="xxcx"><span>信息查询</span> ...
- cookie中转注入
用这个源码搭建网站找注入点http://192.168.226.129/shownews.asp?id=235 判断注入点,在后面加上'http://192.168.226.129/shownews. ...
- oracle创建新的连接(表空间?数据库?)
一.创建用户名密码 create user username identified by password --username 是用户名:password 是密码 二.给用户附权.撤权 gra ...
- tp5 报 A non well formed numeric value encountered 的错解决办法
thinkphp5出现A non well formed numeric value encountered的解决办法修改formatDateTime方法如下 默认值: if (is_null($th ...
- 2019-10-23-C#-从零开始写-SharpDx-应用-绘制基础图形
title author date CreateTime categories C# 从零开始写 SharpDx 应用 绘制基础图形 lindexi 2019-10-23 21:16:35 +0800 ...