targetSdkVersion、compileSdkVersion、minSdkVersion作用与区别

minSdkVersion:

指定app运行的最低设备sdk版本,如minSdkVersion=19 表示该app最低支持Android 4.4(API 19)设备,低于此版本的设备将不能使用该app。随着Android系统版本的持续更新,之前旧的系统版本占有率越来越低,我们可以根据需要将minSdkVersion值往后调整。

compileSdkVersion:

和编译时有关。比如我们当前compileSdkVersion=28(Andorid 9.0),Android 10 新增了有关5G的api。我们的app想尽早使用5G相关的api,这时只需要将compileSdkVersion=29(Android 10),就能在编译阶段编译通过。此外,还需要注意的是,由于这个5G api是新增的,因此需要判断当前系统版本>=29才能使用新api。

targetSdkVersion

直观翻译是“目标版本”,它的作用是兼容旧的api,怎么理解呢?那就看看这个字段用在哪些地方。举个例子,Android 8.0/8.1 系统规定了透明的activity 不能固定方向,否则抛出异常。我们暂时不管google设计的目的何在,先想想假设我们的app使用了透明的activity,且固定了方向,在Android 8.0版本以下运行正常,当我们运行在Android 8.0/8.1系统上,结果如何会如何呢?很不幸,直接crash。对于我们来说,这结果当然不能接受了,我一个好端端的app,你升级个Android 系统直接让我的app挂掉,没有转圜的余地,不科学啊。因此,google想出了一个办法,那就是通过targerVersion字段来区分同一api在不同系统上的行为。

三者联系

compileSdkVersion>=targetSdkVersion>minSdkVersion

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值