一、关于compileSdkVersion、minSdkVersion、targetSdkVersion 的理解
compileSdkVersion:编译应用时使用的SDK的版本号,重点就是“编译”这两个字,它能影响的就是应用编译时的行为,不管它如何改变都不会影响到应用的运行时行为。AndroidStudio有预编译的功能,如果使用低版本的SDK则无法编译新的API,所以为了更好的利用新的API和避免使用弃用的API,最好使用最新的SDK进行编译。注意:如果使用Support Library时最好使用相应版本号的SDK。
minSdkVersion:用来指定应用运行时最低需要的Android系统版本。
targetSdkVersion:主要用APP向前兼容,Google在Android6.0之后添加了动态权限校验,如果我们想让自己的APP可以在Android6.0(API23)以上系统的设备上运行的同时避免权限校验,可以采取将TargetSdkVersion设置为小于23。不过不建议这样使用,存在即有它的道理,动态权限的校验也是为了用户数据安全考虑。
详解可以参考:
compileSdkVersion,minSdkVersion,targetSdkVersion 的区别和比较
android开发如何选择compileSdkVersion, minSdkVersion 和 targetSdkVersion
Android targetSdkVersion 原理
二、关于buildToolsVersion和Android Gradle构建工具的说明
BuildToolsVersion表示构建工具的版本号,这个属性的值对应于Android SDK中的build-tools(D:\Android\sdk\build-tools)下面最新的版本号。Android Gradle构建工具其版本号在项目根目录下面的build.gradle中的classpath里面配置,默认是跟AndroidStudio的版本号对应的。
详解可以参考:
AndroidStudio本地化配置gradle的buildToolsVersion和gradleBuildTools
三、AndroidStudio中Build Variant的使用
详情参考:
build Variants创建不同配置的app(图文详解)
我试用的Demo地址:
BuildVariantDemo