快速上手(进阶版)

无侵入集成

通过 Gradle 提供的 Initialization Scripts在新窗口打开,这样可以在不修改工程的代码的情况下集成 Booster 实现完全无侵入的性能优化,尤其是在 CI 环境中。

Gradle 支持两类接入 Initialization Scripts在新窗口打开 的方式:

  1. 命令行参数
  2. Gradle 目录
    • USER_HOME/.gradle/ 目录下配置 init.gradle 文件
    • USER_HOME/.gradle/init.d/ 目录下配置扩展名为 .gradle 的文件(Kotlin 则为 .init.gradle.kts
    • USER_HOME/init.d/ 目录下配置扩展名为 .gradle 的文件(Kotlin 则为 .init.gradle.kts

以线程优化为例,在工程根目录创建 init.gradle 文件,其内容如下:

allprojects { project ->
    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-transform-thread:$booster_version"
        }
    }
    repositories {
        google()
        mavenCentral()
    }
    project.afterEvaluate {
        if (project.extensions.findByName('android') != null) {
            project.apply plugin: 'com.didiglobal.booster'
        }
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
allprojects { project ->
    buildscript {
        val booster_version = "5.0.0"
        repositories {
            google()
            mavenCentral()
        }
        dependencies {
            classpath("com.didiglobal.booster:booster-gradle-plugin:$booster_version")
            classpath("com.didiglobal.booster:booster-transform-thread:$booster_version")
        }
    }
    repositories {
        google()
        mavenCentral()
    }
    project.afterEvaluate {
        if (project.extensions.getByName("android") != null) {
            project.plugins.apply("com.didiglobal.booster")
        }
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

这样,就可以通过命令行指定 Initialization Scripts在新窗口打开 参数的方式集成 Booster 了:

./gradlew -I init.gradle assembleDebug
1

当然,也可以通过 Gradle 目录的方式来接入 Booster