Targeting degli asset per diverse dimensioni (targeting nidificato)

Per scegliere come target una cartella in un pacchetto di asset o in un modulo bundle in base a diverse dimensioni (formato di compressione delle texture, livello di dispositivo, insieme di paesi), puoi utilizzare il targeting nidificato.

Il targeting nidificato consente di definire criteri di targeting che combinano fino a due dimensioni di targeting.

Formato

Per scegliere come target una cartella in base a più dimensioni, specifica il nome della cartella in una serie di suffissi hashtag.

Ad esempio, per scegliere come target una cartella di asset in base al formato di compressione delle texture ASTC e al livello 2 del dispositivo, il targeting sarà simile al seguente:

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

Se utilizzi Gradle per creare la tua app, i suffissi di targeting vengono rimossi dal nome della directory negli APK o nei pacchetti di asset finali pubblicati sui dispositivi degli utenti.

Se utilizzi direttamente bundletool, specifica se vuoi che il suffisso venga rimosso singolarmente per ogni dimensione in BundleConfig.json. Con un esempio di targeting a livello di dispositivo:

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

Il targeting nidificato è supportato in bundletool 1.14.1 o versioni successive e in Android Gradle Plugin 8.2.0-alpha01 o versioni successive, che richiede Gradle 8.1 o versioni successive.

Per ulteriori informazioni su come personalizzare la configurazione per singole dimensioni, consulta la documentazione relativa a ciascuna dimensione di targeting.

Limitazioni

  • Puoi utilizzare al massimo due dimensioni nidificate. In altre parole, non è possibile impostare contemporaneamente una cartella scelta come target per livello di dispositivo, formato di compressione delle texture e paese: devi sceglierne due.

  • Devi specificare le due dimensioni nidificate allo stesso livello del percorso della cartella. Ad esempio, il seguente targeting per cartella è vietato, poiché #tcf_astc e #tier_2 compaiono in segmenti diversi del percorso:

.../level1/src/main/assets/character-textures#tcf_astc/level1#tier_2/
  • Le dimensioni nidificate devono essere le stesse in tutto il gruppo. Ad esempio, non puoi avere un pacchetto di asset in cui puoi nidificare i livelli di dispositivi e un insieme di paesi, né un altro pacchetto di asset in cui puoi nidificare il paese impostato e il formato di compressione delle texture.

  • I valori utilizzati per le due dimensioni devono essere gli stessi per l'intero set ed è necessario specificare la combinazione completa di valori. Ad esempio, se vuoi nidificare il formato di compressione delle texture e il paese impostato e disponi di 4 TCF (ASTC, ETC2, PVRTC, fallback predefinito) e 3 set di paesi (latam, sea, fallback predefinito), devi specificare una cartella per tutte le 12 combinazioni:

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/…
  • Puoi utilizzare sia il targeting nidificato sia il targeting per dimensione singola su cartelle di contenuti distinte nello stesso pacchetto di asset o modulo bundle. Se utilizzi una dimensione sia nel targeting per singola dimensione che nel targeting nidificato, l'insieme di valori che utilizzi deve essere sempre lo stesso. Ad esempio, non puoi scegliere come target 4 livelli nel targeting a livello di dispositivo a dimensione singola e utilizzare solo 3 livelli se nidificati con set di paesi o TCF.