每一个 Build Variant 代表一个应用的不同版本,例如一个应用可以有免费版,和收费版,或者针对不同的设备的版本。
构建变体由一种 Build Type 和一种 Product Flavor 组成。
例如,有以下Build Type 和 Product Flavor:
Build Type :release , debug
Product Flavor : free, vip
那么最终会有组成四种 Build Variant
freeRelease, freedebug, vipRelease, vipDebug
四种Build Variant 可以有公共的代码和资源,和各自差异化的代码和资源
配置Build Type
在模块级别的 build.gradle
android {
buildTypes{
//默认创建
release {
}
//默认创建
debug{
}
//新增
jniDebug{
}
}
}
配置Product Flavor
同样是在模块级的 build.gradle
, Product Flavor 多了一个概念,叫做维度(Dimension), 不同的维度又可以组合成一种新的 Variant。
如下,是定义了两种维度,收费维度和区域维度,不同维度之间可以再组合。
配置如下:
android {
//声明有两种维度,pay和area
flavorDimensions "pay","area"
productFlavors {
free {
dimension "pay"
}
vip {
dimension "pay"
}
cn {
dimension "area"
}
us {
dimension "area"
}
}
}
在工程的 src目录中,建立四种 flavor 对应的文件夹,加上 src/main ,最终目录如下:
src/main
src/free
src/vip
src/cn
src/us
我们可以在 src/main
中放公共代码和资源,在每一种 flavor 对应的文件夹下,放差异化的代码。