targetSdkVersion讲解

本文详细解析Android应用中的targetSdkVersion属性,说明其在确保应用兼容性和性能方面的作用。当API Level高于targetSdkVersion时,系统启用兼容模式,如应用主题更新和大屏幕支持。反之,系统会尝试保持应用正常运行,但可能丢失部分特性。建议将targetSdkVersion设为最新API Level以利用新特性,但兼容性仍需在minSdkVersion版本上测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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是在程序运行的时候起作用,用于提高指定版本的设备上程序运行体验。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值