使用 Flavor Dimension
当应用程序基于多个条件时,你可以定义风味维度,而不是创建许多风味。
风味尺寸定义了将用于生产变体的笛卡尔积。
例:
flavorDimensions("dimA", "dimB")
productFlavors {
row1 {
...
dimension = "dimA"
}
row2 {
...
dimension = "dimA"
}
row3 {
...
dimension = "dimA"
}
col1 {
...
dimension = "dimB"
}
col2 {
...
dimension = "dimB"
}
col3 {
...
dimension = "dimB"
}
}
此配置将生成 18(3 3 2)个变体(如果你有 2 个标准构建类型:debug
和 release
)。将创建以下构建变体:
row1-col1-debug
row1-col2-debug
row1-col3-debug
row1-col1-release
row1-col2-release
row1-col3-release
row2-col1-debug
row2-col2-debug
row2-col3-debug
row2-col1-release
row2-col2-release
row2-col3-release
row3-col1-debug
row3-col2-debug
row3-col3-debug
row3-col1-release
row3-col2-release
row3-col3-release
维度的顺序由 android.flavorDimensions
定义,并且驱动哪种风味覆盖另一个,当风味中的值替换低优先级风味中定义的值时,这对于资源很重要。
风味维度首先以更高的优先级定义。所以在这种情况下:
dimA > dimB > defaultConfig
当使用多个风味维度时,还有一个风味组合源文件夹可用。例如 src/flavor1Flavor2/
。
- 请注意,这适用于所有维度的所有组合。
- 它的优先级高于单味源集,但低于构建类型。