构建变体 (Build Variants)
源:配置构建变体
构建变体(Build Variant)是 Build Type(构建类型)和 Product Flavor(产品风味)的结合体。
1. 构建类型 (Build Types)
通常用于定义编译属性,如是否混淆、签名等。
kotlin
android {
buildTypes {
getByName("debug") {
applicationIdSuffix = ".debug"
isDebuggable = true
}
getByName("release") {
isMinifyEnabled = true // 开启混淆/R8
isShrinkResources = true // 开启资源压缩
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
signingConfig = signingConfigs.getByName("release")
}
}
}2. 产品风味 (Product Flavors)
通常用于针对不同的客户、渠道或版本(免费版/收费版)配置不同的包名、资源或常量。
Flavor Dimension
所有的 Flavor 都必须属于一个“维度 (Dimension)”。
kotlin
android {
flavorDimensions += "version"
productFlavors {
create("free") {
dimension = "version"
applicationIdSuffix = ".free"
manifestPlaceholders["app_name"] = "免费版"
}
create("paid") {
dimension = "version"
applicationIdSuffix = ".paid"
manifestPlaceholders["app_name"] = "尊享专业版"
}
}
}3. 最终变体示例
基于上述配置,Gradle 会自动生成以下变体:
freeDebugfreeReleasepaidDebugpaidRelease
4. BuildConfig 常量
你可以为不同的变体定义不同的代码常量:
kotlin
android {
productFlavors {
create("free") {
buildConfigField("String", "BASE_URL", "\"https://api.free.com\"")
}
create("paid") {
buildConfigField("String", "BASE_URL", "\"https://api.paid.com\"")
}
}
}在 Java/Kotlin 代码中访问:BuildConfig.BASE_URL。