minSDKVersion、targetSDKVersion和compileSDKVersion

minSDKVersion

顾名思义是设置sdk最低版本的。作用就是操作系统会拒绝低于
该标准的APP的安装。

例如,minSDKVersion设置为16(Jelly Bean 4.1系统),那么该APP将只能运行在4.1系统以上的设备中,想要在2.3系统上安装是不被允许的。

minSDKVersion比较容易理解,经常让我混淆的时其他两个版本设置会对API产生的影响。

targetSDKVersion

targetSDKVersion就是设置SDK目标版本,目标版本的设置就是为了告诉Android系统:本APP是设计计划给哪个API级别运行的。

一般情况下目标版本设置为当前Android最新版本即可。既然是一般那也就有特殊情况,什么情况下需要修改目标版本呢?

如果新发布的SDK版本会对UI显示甚至操作系统运行机制产生影响,而你的APP又没有做好应对措施,为了保证你的APP正常运行,那你需要降低目标版本。因为你的目标版本仍然是旧的SDK,所以在新版系统中那些新的变化会在你的APP中被忽略,继而保证其正常运行。

例如,Android6.0系统增加了动态权限机制,如果为了追时髦,盲目把你的targetSDKVersion设置为23(6.0),那么在需要使用权限的地方将会出现异常。为此,在你做好动态权限申请之前,为保障APP正常运行,你需要将目标版本设置低于23。

compileSDKVersion

compileSDKVersion是设置编译版本。

一般来说编译目标版本是选择最新的SDK,这样可以及时使用体验到新的API提供的新功能。

值得注意的是,如果minSDKVersion和compileSDKVersion版本差距比较大的话,可能会造成API的不兼容。例如,你的最低版本是2.3 ,但是编译版本是5.0,API中使用了4.0SDK提供的一些新API,这样的后果是在2.3系统中运行到该处代码时会发生异常崩溃。这是因为代码的不兼容造成的

 

 

注意:compileSDKVersion是和编译器打交道的,而minSDKVersion和targetSDKVersion是和系统打交道的。


 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值