组件化 Android Build Variant 生成机制

组件化 Android Build Variant 生成机制

SQL 复制代码
buildTypes **{**
**    **release **{**
**        **minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        zipAlignEnabled true
    **}**

**    **foreign.initWith(release)
    foreign **{**
**        **matchingFallbacks = ['release', 'debug']
    **}**
**}**

定义了 buildTypes release/foreign此时在 我们可以看到 模块中 可以选择 Android Build Variant debug /foreign/release

但是我们可以看到 除了 release/foreign之外,还有前缀如gac_a88_8155,以及debug

前缀是怎么来的?

Android Build Variant = ProductFlavor + BuildType

productFlavors 产品风味

Julia 复制代码
productFlavors {
    gac_a88_8155 {
        signingConfig signingConfigs.release8155new
        manifestPlaceholders = ['APP_CHANNEL': "1"]
    }
    gac_a58_8155 {
        signingConfig signingConfigs.release8155new
        manifestPlaceholders = ['APP_CHANNEL': "2"]
    }
    略
} 

如果我们修改 ProductFlavor 将

t60y 修改为 t60y111111 那么对应模块(注意一个build gradle 文件对应 一个模块)

的可选择的 Android Build Variant 将会改变

2.没有定义debug 为什么自动有?

因为release 和debug 是自动有的

当我们注释掉 release 的代码

SQL 复制代码
buildTypes **{**
**   **
    **}**

可以看到仍然有 debug 和 release