compileSdkVersion
指的是你APP使用什么版本的API编译的。每个版本的API集合是不一样的。这是逻辑上的集合。
这个版本号形式是x。一个大版本发布以后,一般不会做小的修改。不会添加 或者删除某个api
例如 api 22 有FlaotMath这个类,而api 23 没有FloatMath这个类。
如果你使用了FloatMath这个类,compileSdkVersion指定为23,则会在编译release包时,无法编译通过。
buildToolsVersion
指的是本地编译工具的版本。这个可以认为是物理上的。
这个版本号通常是x.y.z。一个大版本发布以后,通常会有修复版,提高编译工具的效率,修复bug。
高版本的编译工具可以支持低版本的API集合。即buildToolsVersion》=compileSdkVersion
http://developer.android.com/tools/building/configuring-gradle.html
https://developer.android.com/tools/revisions/build-tools.html