點擊打開鏈接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概念區分