Android Gradle构建类型和定制

IT

处理构建类型

Gradle的android插件默认支持两种不同类型的构建类型:debug和release。可以通过模块构建文件中的buildTypes定制配置。

1
2
3
4
5
6
7
8
9
10
11
buildTypes {
release {
minifyEnabled true
shrinkResource true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug {
applicationIdSuffix '.debug'
versionNameSuffix '-debug'
}
}

通过在debug构建类型中配置applicationIdSuffix和versionNameSuffix可以在同一台设备上安装发布版本和调试版本

另外一个构建类型属性debuggable,调试构建类型自动设置为true,其他类型默认为false。

产品定制和变种

定制允许构建同一个App的多个版本,可以使用productFlavors来声明定制产品

1
2
3
4
5
6
7
8
9
10
android {
productFlavors {
arrogant {
applicationId 'xxxx'
}
friendly {
applicationId 'xxxxxx'
}
}
}

Android Gradle发布配置

IT

设置项目属性

  1. Gradle构建文件支持用一个简单的ext(extra)语法定义属性,一次定义全局使用
1
2
3
4
5
6
7
ext {
def AAVersion = '4.0-SNAPSHORT'
}

dependencies {
compile "org.androidannotations:androidannotation-api:$AAVersion"
}
  1. 另外可以使用gradle.properties配置属性
1
2
login='user'
pass='xxxxx'
1
2
3
4
5
6
7
8
9
repositories {
maven {
url 'xxxxxxxx'
credentials {
username login
password pass
}
}
}

也可以通过命令行提供变量
./gradlew -Plogin=name -Ppass=xxxxx assembleDebug

Android开发Gradle基础

IT

Android的Gradle插件针对Android应用添加了大量的特性,包括构建类型(build type)、定制(product flavor)、签名管理(signing configuration)、库项目(library project)等

Android中的Gradle构建文件

  • settings.gradle

配置项目所需包含的module

  • 根目录build.gradle
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.1'
}
}

allprojects {
repositories {
jcenter()
}
}

task clean(type: Delete) {
delete rootProject.buildDir
}
  1. 配置Android Gradle插件从jcenter仓库下载
  2. allprojects设置所有项目都默认从jcenter仓库下载第三方库
  3. 自定义clean任务,type: Delete表示这个task为Gradle内置的Delete task的一个自定义实现