使用 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/

  • 請注意,這適用於所有維度的所有組合。
  • 它的優先順序高於單味源集,但低於構建型別。