浅谈android studio中各个SdkVersion的含义

第一次写博客

做个关于各种SdkVersion含义、用处的笔记。

compileSdkVersion:
只编译工程的SDK版本,我们知道Android Studio中的内置的Gradle来编译工程的,就是告诉Gradle我要使用哪个版本的SDK来编译工程。

buildToolsVersion:
是你构建工具的版本,其中包括了打包工具aapt、dx等等。这个版本号的选择一般和上面的编译版本号的大版本号是一致的,仔细观察两个版本号,上面的编译版本号只有大版本号,而这个构建工具的版本是有小版本号的。

你可以用高版本的build-tool去构建一个低版本的sdk工程,例如build-tool的版本为20,去构建一个sdk版本为18的

例如:compileSdkVersion 18  

buildToolsVersion "22.0.1"这样也是OK的。

但一般buildToolsVersion的版本等于compileSdkVersion的版本。

minSdkVersion
这个就是项目能够在最小多少版本上的手机上运行,也就指定了你最低能用的API的范围

targetSdkVersion:
目标SDK版本,因为Android版本是向前兼容的,就是新发布的SDK版本是兼容老的SDK版本的,所以这个版本号的设置就是提供向前兼容的主要方式。

Android手机版本较多,不同版本的api方法名称一样,但是实际内部方法不一致,为了保证在不同的版本上调用的是相同版本的api方法,设置targetSdkVersion,当前手机的sdk大于targetSdkVersion ,都会默认使用该targetSdkVersion的api方法,这样就保证了新系统对老应用的向前兼容性。这就是API 19开发的Android项目可以在Android 7.0系统的手机上运行,同样Android 4.x系统的手机可以运行API 24开发的Android项目。

总结:前两者主要时编译时使用,后两者主要是控制运行时手机的版本。

但是实际开发中如果你有这样的需求呢?你需要用新发布系统的API,但是你的apk中使用的API在新系统中变化了,你不想改动那些变化的API,怎么办呢?
你可能已经想到了,就是把compileSDKVersion版本改成高版本,targetSdkVersion还是原来的版本,这样就可以了。但是在使用新API的代码中会红色警告,警告如下

经过测试,虽然这样警告,但是可以编译运行,而且API的调用正常。可以放心使用。

minSdkVersion <= targetSdkVersion <= compileSdkVersion  <= buildToolVersion
用 minSdkVersion 来兼容大部分Android版本,用targetSdkVersion 和 compileSdkVersion 来获得新版本最好的效果。

参考链接:https://www.jianshu.com/p/b1c509ef46a2

                  https://blog.csdn.net/gui_m/article/details/80169827

与其说是写博客不如说是做个笔记今后自己复习使用,技术这条路道阻且长,加油把,骚年!
 



 

猜你喜欢

转载自blog.csdn.net/sy569824306/article/details/86132461