Android Tips:compileSdkVersion,minSdkVersion,targetSdkVersion,buildToolsVersion含义

最近看了如何选择 compileSdkVersion, minSdkVersion 和 targetSdkVersionAndroid targetSdkVersion 原理两篇关于compileSdkVersion、minSdkVersion、targetSdkVersion说明的文章。自己决定总结下,加深理解。

compileSdkVersion

看名字compile就知道是编译时候使用的,主要是告诉Gradle用哪个Android SDK版本编译你的APP,它仅仅用于编译。比如Android6.0不支持Apache的httpClient,这时候可以修改compileSdkVersion为23,编译的时候,就能检查你的App是否有编译警告或者编译错误。

minSdkVersion

是APP可以运行的最低要求。当minSdkVersion设定为15,这时候系统低于4.0.3就不能正常安装该APP了。

下面给出张android系统版本,API level(SDK)和版本代号之间的对应关系表

完整版本的可以查看官网链接

targetSdkVersion

Android系统提供前向兼容的主要手段。这是什么意思呢?随着Android系统的升级,某个系统的API或者模块的行为可能会发生改变,但是为了保证老APK的行为还是和以前兼容。只要APK的targetSdkVersion不变,即使这个APK安装在新 Android 系统上,其行为还是保持老的系统上的行为,这样就保证了系统对老应用的前向兼容性。
网上一些关于Android6.0权限管理教程,都会提到当APP的targetSdkVersion设置为23时,并且运行在Android6.0系统中,新权限管理功能就会生效。targetSdkVersion低于23,不管在什么版本的系统上,新权限管理功能都不会生效的。

buildToolsVersion

构建工具的版本,其中包括了aapt、dx、aidl、zipalign等。可以到sdk下build-tools查看。