使用 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 个标准构建类型:debugrelease)。将创建以下构建变体:

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/

  • 请注意,这适用于所有维度的所有组合。
  • 它的优先级高于单味源集,但低于构建类型。