Asset-Targeting nach mehreren Dimensionen (verschachteltes Targeting)

Wenn Sie einen Ordner in einem Asset-Pack oder Bundle-Modul auf mehrere Dimensionen (Texturkomprimierungsformat, Gerätestufe, Länderset) ausrichten möchten, können Sie verschachtelte Ausrichtungen verwenden.

Mit verschachteltem Targeting können Sie Targeting-Kriterien definieren, die bis zu zwei Targeting-Dimensionen kombinieren.

Formatieren

Wenn Sie ein Targeting auf einen Ordner mit mehreren Dimensionen vornehmen möchten, geben Sie die Liste der Dimensionen in einer Reihe von Hashtag-Suffixen an den Ordnernamen an.

Wenn du beispielsweise einen Asset-Ordner nach dem Texturkomprimierungsformat ASTC und der Gerätestufe 2 ausrichten möchtest, sieht das Targeting so aus:

...
.../level1/src/main/assets/character-textures#tcf_astc#tier_2/
...

Wenn Sie Gradle zum Erstellen Ihrer App verwenden, werden Targeting-Suffixe aus dem Verzeichnisnamen in den finalen APKs oder Asset-Packs entfernt, die an die Geräte der Nutzer gesendet werden.

Wenn Sie Bundletool direkt verwenden, geben Sie in BundleConfig.json an, ob das Suffix für jede der Dimensionen einzeln entfernt werden soll. Beispiel für das Targeting auf Geräteklassen:

{
  ...
  "optimizations": {
    "splitsConfig": {
      "splitDimension": [
      ...
      {
        "value": "DEVICE_TIER",
        "negate": false,
        "suffixStripping": {
          "enabled": true,
      }],
    }
  }
}

Das verschachtelte Targeting wird ab Bundletool 1.14.1 und Android Gradle-Plug-in 8.2.0-alpha01 oder höher unterstützt. Dafür ist Gradle 8.1 oder höher erforderlich.

Weitere Informationen zum Anpassen der Konfiguration für einzelne Dimensionen finden Sie in der Dokumentation zu den einzelnen Ausrichtungsdimensionen.

Beschränkungen

  • Sie können maximal zwei verschachtelte Dimensionen verwenden. Mit anderen Worten: Sie können nicht gleichzeitig ein Verzeichnis mit Ausrichtung auf Geräteebene, Texturkomprimierungsformat und Land einrichten. Sie müssen zwei davon auswählen.

  • Sie sollten die beiden verschachtelten Dimensionen auf derselben Ebene des Ordnerpfads angeben. Das folgende Ordner-Targeting ist beispielsweise nicht zulässig, da #tcf_astc und #tier_2 in verschiedenen Pfadsegmenten vorkommen:

.../level1/src/main/assets/character-textures#tcf_astc/level1#tier_2/
  • Die verschachtelten Dimensionen müssen im gesamten Paket identisch sein. Sie können beispielsweise kein Asset-Paket haben, in dem Sie Gerätestufen und Ländergruppen verschachteln, und ein anderes Asset-Paket, in dem Sie Ländergruppen und das Texturkomprimierungsformat verschachteln.

  • Die Werte, die Sie für die beiden Dimensionen verwenden, müssen im gesamten Paket gleich sein. Außerdem müssen Sie die vollständige Kombination von Werten angeben. Wenn Sie beispielsweise das Texturkomprimierungsformat und das Länderset verschachteln möchten und vier TCFs (ASTC, ETC2, PVRTC, Standard-Fallback) und drei Ländergruppen (latam, sea, Standard-Fallback) haben, müssen Sie einen Ordner für alle 12 Kombinationen angeben:

level1/textures#countries_latam#tcf_astc/…
level1/textures#countries_latam#tcf_etc2/…
level1/textures#countries_latam#tcf_pvrtc/…
level1/textures#countries_latam/…
level1/textures#countries_sea#tcf_astc/…
level1/textures#countries_sea#tcf_etc2/…
level1/textures#countries_sea#tcf_pvrtc/…
level1/textures#countries_sea/…
level1/textures#tcf_astc/…
level1/textures#tcf_etc2/…
level1/textures#tcf_pvrtc/…
level1/textures/…
  • Sie können sowohl verschachteltes als auch eindimensionales Targeting auf verschiedene Inhaltsordner im selben Asset-Paket oder Bundle-Modul anwenden. Wenn Sie eine Dimension sowohl für das Targeting auf eine einzelne Dimension als auch für das verschachtelte Targeting verwenden, müssen Sie immer dieselben Werte verwenden. Sie können beispielsweise nicht bei einem Targeting auf Geräteebene mit einer einzelnen Dimension auf vier Stufen ausrichten und dann nur drei Stufen verwenden, wenn Sie die Ausrichtung in Ländergruppen oder TCFs verschachteln.