Per scegliere come target una cartella in un asset pack o in un modulo del bundle in base a più dimensioni (formato di compressione delle texture, livello del dispositivo, set 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 una cartella come target in base a più dimensioni, specifica l'elenco di dimensioni di una serie di suffissi hashtag con il nome della cartella.
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à il seguente:
...
.../level1/src/main/assets/character-textures#tcf_astc#tier_2/
...
Se utilizzi Gradle per compilare l'app, i suffissi di destinazione vengono rimossi dal nome della directory negli APK o nei pacchetti di asset finali che vengono caricati sui dispositivi degli utenti.
Se utilizzi direttamente bundletool, specifica se vuoi che il suffisso
venga rimosso singolarmente per ogni dimensione in BundleConfig.json
. Ecco un esempio di targeting per 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 nel plug-in Android Gradle 8.2.0-alpha01 o versioni successive, che richiede Gradle 8.1 o versioni successive.
Puoi trovare ulteriori informazioni su come personalizzare la configurazione per le singole dimensioni nella documentazione di ogni dimensione di targeting.
Limitazioni
Puoi utilizzare al massimo due dimensioni nidificate. In altre parole, non puoi avere contemporaneamente una cartella scelta come target in base al livello del dispositivo, al formato di compressione delle texture e al paese: devi sceglierne 2.
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 appaiono in segmenti di percorso diversi:
.../level1/src/main/assets/character-textures#tcf_astc/level1#tier_2/
Le dimensioni nidificate devono essere le stesse per tutto il bundle. Ad esempio, non puoi avere un pacchetto di asset in cui nidificare i livelli di dispositivo e l'insieme di paesi e un altro pacchetto di asset in cui nidificare l'insieme di paesi e il formato di compressione delle texture.
I valori utilizzati per le due dimensioni devono essere gli stessi per tutto il bundle e devi specificare la combinazione completa di valori. Ad esempio, se vuoi nidificare il formato di compressione delle texture e l'insieme di paesi e hai 4 TCF (ASTC, ETC2, PVRTC, fallback predefinito) e 3 insiemi 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 a dimensione singola in cartelle di contenuti distinte nello stesso asset pack o nello stesso modulo del pacchetto. Se utilizzi una dimensione sia nel targeting a dimensione singola sia 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 per livello del dispositivo a dimensione singola e poi utilizzare solo 3 livelli quando sono nidificati con set di paesi o TCF.