安卓MinSdkVersion、CompileSdkVersion、TargeSdkVersion的区别

一、MinSdkVersion

这个比较容易理解,就是你的apk支持的最低的安卓系统版本,如果MinSdkVersion是10(2.3.3),打包后的apk安装在安卓2.2的系统上,则安装不成功。

系统会提示: ERROR: Application requires API version 8. Device API version is 7。

那么这个配置成多少合适呢?太小的话,就不能使用新系统的api和特性,大太的话,兼容的平台就少了,现在4.0及以上的机型占的97%,推荐使用4.0。

二,TargetSdkVersion
这个简单的理解就是你使用哪一个Android版本的api或特性。因为新的Android系统是向前兼容的,比如新出来的安卓7.0,它是可以使用之前6.x、5.x、4.x、2.x中提供的api(保证旧的apk能正常运行)。比如Android 6.0增加了运行时权限,如果你不想动态申请权限,就可以将tartgetSdkVersion设成6.0以下,那么就可以免去动态权限了,你的apk在6.0以上的机器上也可以正常运行。

三,CompileSdkVersion
这个比较容易理解,就是你编译使用哪个版本的sdk,使用哪个版本的sdk,代码中就能使用这个sdk提供的api和特性。但是起不起作用还得看机器的系统版本。它们三者的关系是MinSdkVersion <= TargetSdkVersion <= CompileSdkVersion。一般将TargetSdkVersion与CompileSdkVersion保持一致。

举个实际当中的例子:
Activity在api 11中添加了getActionBar()这个函数,
首先,你的CompileSdkVersion必须大于或等于11才能使用这个函数;
其次,你的MinSdkVersion必须大于或等于11,编译才能通过;
再次,你的TargetSdkVersion必须大于或等于11,才能保证执行这个函数不会崩溃。同一个函数在不现的系统版本里实现也可能不一样。比如targetSdkVersion指定成5.0,那么实际表现的跟5.0的特性完全一致,指定成更高的版本,比如6.0,那么表现就是跟6.0的完全一致。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值