# 快速上手(进阶版)

# 无侵入集成

通过 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 = '3.1.0'
        repositories {
            mavenLocal()
            google()
            mavenCentral()
            jcenter()
            maven { url 'https://oss.sonatype.org/content/repositories/public' }
        }
        dependencies {
            classpath "com.didiglobal.booster:booster-gradle-plugin:$booster_version"
            classpath "com.didiglobal.booster:booster-transform-thread:$booster_version"
        }
    }
    repositories {
        mavenLocal()
        google()
        mavenCentral()
        jcenter()
        maven { url 'https://oss.sonatype.org/content/repositories/public' }
    }
    project.afterEvaluate {
        if (project.extensions.findByName('android') != null) {
            project.apply plugin: 'com.didiglobal.booster'
        }
    }
}

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

./gradlew -I init.gradle assembleDebug

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