targetSdkVersion讲解

来源:互联网 发布:js 动态设置margin 编辑:程序博客网 时间:2024/05/22 14:48

targetSdkVersion讲解


manifest文件中的<uses-sdk> 用来描述该应用程序可以运行的最小和最大API级别,以及应用程序开发者设计期望运行的平台版本。通过在manifest清单文件中添加该属性,我们可以更好的控制应用在不同android 系统版本上的安装和兼容性体验问题。

如下:
<span style="font-family:KaiTi_GB2312;"><span style="font-size:18px;">  <uses-sdk        android:minSdkVersion="11"        android:targetSdkVersion="19" /></span></span>

1、首先在讲解targetSdkVersion之前,得讲一下minSdkVersion

        当安装应用的手机系统API level 小于 minSdkVersion的值时,将不能安装该应用。 

minSdkVersion 用于指明应用程序运行所需的最小API level。如果不指明该属性,其默认值为1。如上图1中minSdkVersion =“11”,说明该应用在只能安装在大于等于android系统API level 为11的系统上。如果将该应用安装在API level 小于11的android系统上,系统会提示手机API level的版本太低,安装失败。


所以这里有一点需要引起我们注意,我们在开发时必须留意我们用到API 接口的版本。在定义minSdkVersion属性时,尽量要让minSdkVersion的值大于等于我们用到的API 接口的开始被支持的最低版本。这样可以让不支持该接口的android系统不能安装我们的应用,防止应用在一些手机上因兼容性问题而崩溃。


总而言之:minSdkVersion就是在安装程序的时候,如果目标设备的API版本小于minSdkVersion(大于maxSdkVersion),程序将无法安装。一般来说没有必要设置maxSdkVersion。

 2、  targetSdkVersion


       targetSdkVersion相对复杂一些,如果设置了此属性,那么在程序执行时,如果目标设备的API版本正好等于此数值,他会告诉Android平台:此程序在此版本已经经过充分测,没有问题。不必为此程序开启兼容性检查判断的工作了。也就是说,如果targetSdkVersion与目标设备的API版本相同时,运行效率可能会高一些
     

      如果平台的API Level高于你的应用程序中的targetSdkVersion属性指定的值,系统会开启兼容行为来确保你的应用程序继续你期望的形式来运行。例如,设置这个targetSdkVersion值为11或更高,当你的应用运行在Android3.0或更高的系统上时,系统会自动为你的应用使用新的默认主题(Holo主题),并且当运行在大屏幕的设备上时会禁用屏幕兼容模式(screen compatibility mode),因为支持了 API level11就暗示了支持大屏幕。一般情况下,应该将这个属性的值设置为最新的API level 值,这样的话就可以充分利用新版本系统上的新特性。Eclipse在生成项目时,默认将该值设置为最高。


     如果平台的API Level低于你的应用程序中的targetSdkVersion属性指定的值时, 系统会开启兼容行为来确保你的应用程序能正常运行,这时一些在targetSdkVersion上的特性就没有了。但是,这个设置仅仅是一个声明、一个通知,在低版本系统中运行不会有太实质的作用。比如:使用了targetSdkVersion这个SDK版本中的一个特性,但是这个特性在低版本中是不支持的,那么在低版本的API设备上运行程序时,可能会报错:java.lang.VerifyError。也就是说,此属性不会帮你解决兼容性的测试问题。你至少需要在minSdkVersion这个版本上将程序完整的跑一遍来确定兼容性是没有问题的


总之:targetSdkVersion这个属性是在程序运行时期起作用的,系统根据这个属性决定要不要以兼容模式运行这个程序。

同时,targetSdkVersion是在程序运行的时候起作用,用于提高指定版本的设备上程序运行体验。





0 0
原创粉丝点击