点击打开链接StackOverFlow中对这个问题进行了详细的讨论:http://stackoverflow.com/questions/24521017/android-gradle-buildtoolsversion-vs-compilesdkversion
【问题的结论】就是:
1、CompileSdkVersion是你SDK的版本号,也就是API Level,例如API-19、API-20、API-21等等。
2、buildeToolVersion是你构建工具的版本,其中包括了打包工具aapt、dx等等。这个工具的目录位于..your_sdk_path/build-tools/XX.XX.XX
这个版本号一般是API-LEVEL.0.0。 例如I/O2014大会上发布了API20对应的build-tool的版本就是20.0.0
在这之间可能有小版本,例如20.0.1等等。
3、在ecplise的project.properties中可以设置sdk.buildtools=17.0.0。也可以不设置,不设置的话就是指定最新版本。而在android studio中是必须在build.gradle中设置。例如
compileSdkVersion 22
buildToolsVersion "22.0.1"
4、你可以用高版本的build-tool去构建一个低版本的sdk工程,例如build-tool的版本为20,去构建一个sdk版本为18的
例如:compileSdkVersion 18
buildToolsVersion "22.0.1"这样也是OK的。
【Android SDK 功能解析】
先来看一下SDK的目录
其中比较重要的目录包括【build-tools】【platforms】【platform-tools】【tools】
【build-tools】里面是不同版本(例如21.1.1)的build工具,这些工具包括了aapt打包工具、dx.bat、aidl.exe等等
【platform】是存放不同API-level版本SDK目录的地方
【platform-tools】是一些android平台相关的工具,adb、fastboot等
【tools】是指的安卓开发相关的工具,例如android.bat、ddms.bat(Dalvik debug Monitor Service)、draw9patch.bat等等
课外阅读:
http://4byte.cn/question/47017/android-sdk-build-tools.html
Android中build target,minSdkVersion,targetSdkVersion,maxSdkVersion概念区分