android gradle 插件
条评论介绍:
Android Gradle 插件是从 'com.android.tools.build:gradle:3.4.1'
这个 classpath
中引入的, 包含两种插件
com.android.application
该插件在
gradle
中对应的是AppExtension
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
, compileSdkVersion
和 support library
的大版本号要一致
compileSdkVersion
的版本号只会影响编译, 不会影响运行时行为, 运行时行为跟两个因素有关:
- 运行 app 的设备的系统版本
defaultConfig
中的targetSdkVersion
2.buildToolsVersion
build
工具的版本号, 每一个android
版本都会对应一个 buildToolsVersion
, 新版本的会兼容老版本的
3.useLibrary
在编译时将指定的库添加到类路径中, 但不会将库与应用程序绑定到一起.
在 api 23 以后无法使用 http, 可以通过该方法支持http:
1 | android { |
4.ndkVersion
指定 ndk
的 特定版本