Configurar como o R8 é executado

Com o plug-in de configurações, é possível criar perfis de execução para a ferramenta R8, permitindo configurar como o R8 é executado para não deixar o build lento. Dependendo do ambiente, é possível usar perfis para executar o R8 em um processo JVM separado e definir argumentos da JVM, como o tamanho máximo do heap.

Declarar um perfil de execução

Aplique o plug-in de configurações e adicione o bloco android ao arquivo settings.gradle. Nesse bloco, é possível definir diferentes perfis e depois definir um padrão, conforme mostrado no exemplo a seguir:

Kotlin

android {
    execution {
        profiles {
            create("server") {
                r8 {
                    runInSeparateProcess = true
                    jvmOptions += listOf("-Xms2048m", "-Xmx8192m", "-XX:+HeapDumpOnOutOfMemoryError")
                }
            }
            create("local") {
                r8 {
                    runInSeparateProcess = true
                    jvmOptions += listOf("-Xms256m", "-Xmx2048m", "-XX:+HeapDumpOnOutOfMemoryError")
                }
            }
            defaultProfile = "server"
        }
    }
}

Groovy

android {
    execution {
        profiles {
            register("server") {
                r8 {
                    runInSeparateProcess = true
                    jvmOptions += ["-Xms2048m", "-Xmx8192m", "-XX:+HeapDumpOnOutOfMemoryError"]
                }
            }
            register("local") {
                r8 {
                    runInSeparateProcess = true
                    jvmOptions += ["-Xms256m", "-Xmx2048m", "-XX:+HeapDumpOnOutOfMemoryError"]
                }
            }
            defaultProfile = "server"
        }
    }
}

Substituir o perfil padrão

Para substituir o perfil de execução padrão atual, adicione a seguinte propriedade ao arquivo gradle.properties.

android.settings.executionProfile=example-profile