使用 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/
。
- 請注意,這適用於所有維度的所有組合。
- 它的優先順序高於單味源集,但低於構建型別。