Android Studio中minSdkVersion、targetSdkVersion、compileSdkVersion、buildToolsVersion的理解

1.minSdkVersion和targetSdkVersion
targetSdkVersion表示能够使用的最高的SDK版本(API)。
minSdkVersion表示支持的最低的SDK版本(API)。
换言之,minSdkVersion和targetSdkVersion相当于一个区间。在这个区间内的设备都能够正常的执行我们开发的app。换句话说,如果你想使用Android刚刚推出的新特性或者较高版本的新功能,但是呢,这对于你的app又不是必须的,那么我们就可以将targetSdkVersion设置为我们想使用的新特性的SDK版本号(一般来说就是最高的版本),然后把minSdkVersion设置成低版本号保证一部分人能够使用你的app。

举一个样例:假如你想给你的app增加大量的手势操作(sdk 7才引入的),然而这些手势操作能够被Button啊或menu等取代,在这样的情况下,手势操作就是一个额外的加分功能,而不是一个必须的功能,因此你就须要把targetSdkVersion设置为7,把minSdkVersion设置为3(这是举个样例,如今没人还在用这么老的设备了)这样即使是使用老设备的用户也能够用你的app了。

然后你所要做的就是要在代码里推断版本号,假设是大于等于7的版本号中就使用手势操作,小于7的版本号中就使用button等取代,这样使用了新手机的用户就能够体验到你app中酷炫的新功能了。

另外一个样例:假设你想给你的项目增加Android 5.0的Material Design,有一些用户可能会升级到5.0而使用到你的新特性,而有一部分用户的手机硬件太老,不支持升级到5.0,除非他们换新手机。那么你就要为他们进行向下兼容,不至于损失这部分用户,这样你的targetSdkVersion设置为21。minSdkVersion能设置为8.
2.compileSdkVersion和buildToolsVersion
1、CompileSdkVersion是你SDK的版本号,也就是API Level,例如Android-25、Android-26、Android-27等等.
2、buildeToolsVersion是你构建工具的版本。
3、可以用高版本的build-tool去构建一个低版本的sdk工程,例如build-tool的版本为28.0.3,去构建一个sdk版本为27的
例如:

compileSdkVersion 27
buildToolsVersion "28.0.3"

这样也是OK的。
4.其中比较重要的目录包括【build-tools】【platforms】【platform-tools】【tools】
【build-tools】里面是不同版本(例如"28.0.3")的build工具,这些工具包括了 aapt打包工具、dx.bat、aidl.exe等等
【platforms】是存放不同API-level版本SDK目录的地方
【platform-tools】是一些android平台相关的工具,adb、fastboot等
【tools】是指的安卓开发相关的工具,例如android.bat、ddms.bat(Dalvik debug Monitor Service)、draw9patch.bat等等

注意:在app的build.gradle中compileSdkVersion和targetSdkVersion应该保持一致。
下面是SDK的API-Level和Android版本的对应表:
Android Studio中minSdkVersion、targetSdkVersion、compileSdkVersion、buildToolsVersion的理解_第1张图片

你可能感兴趣的:(Android,Studio)