android: minSdkVersion、targetSdkVersion、CompileSdkVersion三个api版本号的区别
一,minSdkVersion:
app可以安装的最低的api版本:
1,安装:google play和应用市场会根据用户的api版本,
判断用户是否可以看到你的app
2, 运行:在minSdkVersion指定版本的api上运行时,
如果使用了更高版本的api,会导致报错:
java.lang.NoSuchMethodError
这个需要在代码中进行判断解决
3,调用第三方库: 如果调用多个第三方库,
每个第三方库都有自己的minSdkVersion,
则app设置minSdkVersion时,
应取所调用的第三方库中最大的minSdkVersion值
4,选择版本:参考这篇文章:
选择一个支持度较高的版本,
如果minSdkVersion值越低,则调试兼容性的工作越多
二,targetSdkVersion:
1,targetSdkVersion 是经过测试可支持的目标版本:
是 Android 提供向前兼容的主要依据
即:你的app支持从minSdkVersion到targetSdkVersion区间范围内的所有api版本,
在这些版本上都经过测试后运行无问题
2,选择版本:
创建应用:android studio 通常会设置为当前的最新android版本
发布: 通常google play或应用市场会对targetSdkVersion做出要求,
以保持对新版android的兼容性
说明:刘宏缔的架构森林是一个专注架构的博客,
网站:https://blog.imgtouch.com
原文: https://blog.imgtouch.com/index.php/2023/06/05/android-minsdkversion-targetsdkversion/
对应的源码可以访问这里获取: https://github.com/liuhongdi/
或: https://gitee.com/liuhongdi
说明:作者:刘宏缔 邮箱: 371125307@qq.com
三,CompileSdkVersion
1,compileSdkVersion是gradle编译app时指定的api版本
注意:这个值只在编译时起作用,它不会被编译到apk当中
指定compileSdkVersion后,可能会出现相应的编译警告、编译错误
2,选择版本:
创建应用:android studio 通常会设置为当前的最新android版本
设置时通常与targetSdkVersion保持一致
四,总结三者的关系:
minSdkVersion (lowest possible) <= targetSdkVersion == compileSdkVersion (latest SDK)
minSdkVersion到targetSdkVersion之间这两者是一个区间。
你能够用到targetSdkVersion中最新的API,但你又需要向下兼容到minSdkVersion,
保证这个区间内的api版本都能够正常的执行你的app。
来自博客园mfmdaoyou的生动解释
原博文地址:
https://www.cnblogs.com/mfmdaoyou/p/6922549.html