android-gradle Utilisation de la dimension saveur


Exemple

Lorsque l'application est basée sur plusieurs critères, au lieu de créer beaucoup de saveurs, vous pouvez définir des dimensions de saveur.

Les dimensions d'arôme définissent le produit cartésien qui sera utilisé pour produire des variantes.

Exemple:

flavorDimensions("dimA", "dimB")

productFlavors {

    row1 {
        ...
        dimension = "dimA"
    }
    row2 {
        ...
        dimension = "dimA"
    }
    row3 {
         ...
        dimension = "dimA"
    }

    col1 {
        ...
        dimension = "dimB"
    }
    col2 {
        ...
        dimension = "dimB"
    }
    col3 {
         ...
        dimension = "dimB"
    }
}

Cette configuration produira 18 (3 3 2) variantes (si vous avez les 2 types de build standard: debug et release ). Les variantes de construction suivantes seront créées:

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

L' ordre de la dimension est défini par android.flavorDimensions et les lecteurs dont l'arôme remplace l'autre , ce qui est important pour les ressources lorsqu'une valeur dans une saveur remplace une valeur définie dans une saveur de priorité inférieure.

La dimension de saveur est définie avec une priorité plus élevée en premier. Donc dans ce cas:

dimA > dimB > defaultConfig

Il existe également un dossier source "Combinaison de saveurs" disponible lorsque plusieurs dimensions de saveur sont utilisées. Par exemple src/flavor1Flavor2/ .

  • Notez que ceci est pour toutes les combinaisons de toutes les dimensions.
  • Sa priorité est supérieure à celle des sources à saveur unique, mais inférieure à celle des types de construction.