快速上手

配置 Booster Gradle 插件

Android 工程根目录的 build.gradle 中引入 booster-gradle-plugin:

buildscript {
    ext.booster_version = "5.0.0"

    repositories {
        google()
        mavenCentral()
    }

    dependencies {
        classpath "com.didiglobal.booster:booster-gradle-plugin:$booster_version"
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
buildscript {
    val booster_version = "5.0.0"

    repositories {
        google()
        mavenCentral()
    }

    dependencies {
        classpath("com.didiglobal.booster:booster-gradle-plugin:$booster_version")
    }
}
1
2
3
4
5
6
7
8
9
10
11
12

App 子工程中启用 booster-gradle-plugin:

apply plugin: 'com.android.application'
apply plugin: 'com.didiglobal.booster'
// ...
1
2
3
plugins {
    id("com.android.application")
    id("com.didiglobal.booster")
    // ...
}
1
2
3
4
5

注意

由于其它插件可能与 Booster 有冲突,尽可能将 com.didiglobal.booster 放在 com.android.application 的下面第一行

配置 Booster 插件

Android 工程根目录的 build.gradle 中引入 Booster 的插件,以 booster-task-analyser在新窗口打开 为例,如下所示:

buildscript {
    ext.booster_version = "5.0.0"

    repositories {
        google()
        mavenCentral()
    }

    dependencies {
        classpath "com.didiglobal.booster:booster-gradle-plugin:$booster_version"
        classpath "com.didiglobal.booster:booster-task-analyser:$booster_version"
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13

注意

如果未配置任何 Booter 插件,transformClassesWithBoosterFor${Variant} 任务则不会被执行,这个特性可以用于仅构建 Release 包时启用 Booster 插件,加快 Debug 包的构建速度。

仅对 Release 生效

Booster 提供了很多的插件,如果引入所有的插件,可能会增加 App 构建的时间,甚至影响开发调试的效率,有些插件完全可以在 Debug 构建中忽略掉,可以在 build.gradle 中通过 Gradle 的启动参数来判断构建 task 是否是 Release 类型:

buildscript {
    ext.booster_version = "5.0.0"
    ext.debug = gradle.startParameter.taskNames.any {
        it.contains('debug') || it.contains('Debug')
    }

    repositories {
        google()
        mavenCentral()
    }

    dependencies {
        classpath "com.didiglobal.booster:booster-gradle-plugin:$booster_version"

        if (!debug) {
            classpath "com.didiglobal.booster:booster-task-analyser:$booster_version"
        }
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
buildscript {
    val booster_version = "5.0.0"
    val debug = gradle.startParameter.taskNames.any {
        it.contains("debug", true)
    }

    repositories {
        google()
        mavenCentral()
    }

    dependencies {
        classpath("com.didiglobal.booster:booster-gradle-plugin:$booster_version")

        if (!debug) {
            classpath("com.didiglobal.booster:booster-task-analyser:$booster_version")
        }
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19