MinSdkVersion, targetSdkVersion, target API level的区别

在AndroidMenifest.xml中,常常会有下面的语句: 
<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="10" android:maxSdkVersion="10" />

在default.properties中,会看到下面的语句: target=android-10

如果是使用Eclipse的话,还可能会看到这样的警告:Attribute minSdkVersion (4) is lower than the project target API level (10)

那么,这里面的minSdkVersion、targetSdkVersion、maxSdkVersion、target API level四个数值到底有什么区别?minSdkVersion与maxSdkVersion比较容易理解,就是在安装程序的时候,如果目标设备的API版本小于minSdkVersion,或者大于maxSdkVersion,程序将无法安装。一般来说没有必要设置maxSdkVersion。
targetSdkVersion相对复杂一些,如果设置了此属性,那么在程序执行时,如果目标设备的API版本正好等于此数值,他会告诉Android平台:此程序在此版本已经经过充分测,没有问题。不必为此程序开启兼容性检查判断的工作了。也就是说,如果targetSdkVersion与目标设备的API版本相同时,运行效率可能会高一些。但是,这个设置仅仅是一个声明、一个通知,不会有太实质的作用,比如说,使用了targetSdkVersion这个SDK版本中的一个特性,但是这个特性在低版本中是不支持的,那么在低版本的API设备上运行程序时,可能会报错:java.lang.VerifyError。也就是说,此属性不会帮你解决兼容性的测试问题。你至少需要在minSdkVersion这个版本上将程序完整的跑一遍来确定兼容性是没有问题的。
在default.properties中的target是指在编译的时候使用哪个版本的API进行编译。 


综上,上面的四个值其实是作用于不同的时期:target API level是在编译的时候起作用,用于指定使用哪个API版本(SDK版本)进行编译。minSdkVersion和maxSdkVersion是在程序安装的时候起作用,用于指定哪些版本的设备可以安装此应用。targetSdkVersion是在程序运行的时候起作用,用于提高指定版本的设备上程序运行体验。这四个数值在程序编译时也没有严格的检查,比如说,你可以将minSdkVersion设置的比maxSdkVersion还大,他会自动忽略掉错误的maxSdkVersion。
在Android项目中,通过`build.gradle`文件可以管理应用的最低运行APIminSdkVersion)和期望运行的最高APItargetSdkVersion)。以下是确认和更新API兼容性的步骤: 1. 打开`build.gradle`(通常是`app/build.gradle`)文件,找到`defaultConfig`部分,这里定义了应用的基本配置,包括API兼容性。 ```groovy defaultConfig { minSdkVersion <YOUR_MIN_SDK_LEVEL> targetSdkVersion <YOUR_TARGET_SDK_LEVEL> // 其他配置... } ``` `<YOUR_MIN_SDK_LEVEL>`是你希望应用能够运行的最低Android API级别,`<YOUR_TARGET_SDK_LEVEL>`则是你的应用期望能够在哪个API级别上获得最佳功能。 2. 确定你的应用是否支持Android API Level 28(即Oreo MR1),可以在网上查找你需要使用的特定库或者功能的最低支持版本。大多数情况下,如果你使用的是最新的库或者系统特性,目标API应设为28或更高。 3. 如果`targetSdkVersion`低于28,并且你的应用需要利用28及以上的特性和API,那么你应该将它提升到28或以上。同时,别忘记检查所有依赖项的最低API要求,确保它们也与你的目标兼容。 4. 更新完毕后,在项目的Gradle视图中(`File` > `Sync Project with Gradle Files` 或者 Build工具自动同步按钮)来应用更改。 5. 测试应用:在模拟器或真机上运行应用,看是否能正常启动。如果遇到无法运行的问题,说明可能存在一些兼容性问题,需要逐行检查和修复。 记得每次更新SDK版本后都要测试,因为可能会导致布局或其他组件显示问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值