介绍:

Android Gradle 插件是从 'com.android.tools.build:gradle:3.4.1' 这个 classpath 中引入的, 包含两种插件

  1. com.android.application

    该插件在 gradle 中对应的是 AppExtension

  2. com.android.library

    该插件在 gradle 中对应的是 LibraryExtension

这两个累的基类都是 BaseExtension

BaesExensiion 中可配置的属性

NamedDomainObjectContainer<T> 该类型是定义一个自定义类继承 T , 在 gradle 文件中可以根据业务定义一些有意义的名称

名称 参数 描述
compileSdkVersion int SDK编译版本号
useLibrary string 将指定的包含到类路径中, 该属性用来支持 Android SDK 附带的可选平台库 eg: org.apache.http.legacy
buildToolsVersion int 构建工具版本号(命令行)
ndkVersion string 定义项目使用特定的ndk版本号
buildTypes NamedDomainObjectContainer 构建类型
productFlavors NamedDomainObjectContainer 配置产品变种, defaultConfig中的属性都可以在这次更改
signingConfigs NamedDomainObjectContainer 配置签名信息
flavorDimensions
sourceSets NamedDomainObjectContainer 默认的一些文件路径的配置
defaultConfig DefaultConfig 配置一些默认属性
aaptOptions Action 配置处理资源文件的配置项
dexOptions Action 将class文件打成dex文件的dx工具
lintOptions Action 配置检测工具
externalNativeBuild Action
compileOptions Action 编译配合
packagingOptions Action
adbOptions Action adb命令配置
splits Action
dataBinding Action databinding配置
deviceProvider DeviceProvider
testServer TestServer
registerTransform
defaultPublishConfig String
variantFilter Action
resourcePrefix String 配置资源文件名称
wrapJavaSourceSet SourceSet
testOptions Action

1.compileSdkVersion

该方法定义使用什么版本的SDK编译我们的app. Goole 建议尽量使用最新的api版本来作为 compileSdkVersion

如果依赖了 support library, compileSdkVersionsupport library 的大版本号要一致

compileSdkVersion 的版本号只会影响编译, 不会影响运行时行为, 运行时行为跟两个因素有关:

  1. 运行 app 的设备的系统版本
  2. defaultConfig 中的targetSdkVersion

2.buildToolsVersion

build 工具的版本号, 每一个android 版本都会对应一个 buildToolsVersion, 新版本的会兼容老版本的

3.useLibrary

在编译时将指定的库添加到类路径中, 但不会将库与应用程序绑定到一起.

在 api 23 以后无法使用 http, 可以通过该方法支持http:

1
2
3
4
5
android {
...
useLibrary 'org.apache.http.legacy'
...
}

4.ndkVersion

指定 ndk 的 特定版本