Android 项目中 compileSdkVersion targetSdkVersion minSdkVersion buildToolsVersion 的区别
内容提要
之前没有注意 compileSdkVersion、targetSdkVersion、minSdkVersion 和 buildToolsVersion 这几个 gradle 配置参数,但是最近遇到一个需要用到三方 SDK 的项目,需要了解这几个参数的区别。compileSdkVersion 是编译 app 时使用的 API 版本,targetSdkVersion 是指定 app 运行时使用的 Android 版本,minSdkVersion 是指定 app 运行所需的最低 Android 版本,buildToolsVersion 是编译工具的版本。submodule 的 targetsdk 和 compilesdk 版本可以不一致。
关键要点
-
compileSdkVersion 是编译 app 使用的 API 版本,允许使用最新的 API。
-
targetSdkVersion 指定 app 运行时使用的 Android 版本,未设置时默认为 minSdkVersion。
-
minSdkVersion 指定 app 运行所需的最低 Android 版本,默认为 1。
-
compileSdkVersion 与 buildToolsVersion 的区别在于前者是编译时使用的 SDK 版本,后者是编译工具的版本。
-
buildToolsVersion 可以高于 compileSdkVersion,且向下兼容。
-
需要确保整个项目的 minSdkVersion 大于等于所有模块中最高的 minSdkVersion。
-
可以通过 SDK Manager 获取最新的 buildToolsVersion 版本号。
-
submodule 的 targetSdkVersion 和 compileSdkVersion 可以不一致。