Таргетинг на активы по нескольким параметрам (вложенный таргетинг)

Чтобы настроить таргетинг на папку в пакете ресурсов или модуле пакета по нескольким параметрам (формат сжатия текстур, уровень устройства, набор стран), вы можете использовать вложенный таргетинг.

Вложенное таргетинг позволяет определять критерии таргетирования, которые сочетают в себе до 2 таргетинга.

Формат

Чтобы нацелиться на папку несколькими измерениями, укажите список размеров в серии суффиксов хэштега на имя папки.

Например, чтобы нацелиться на папку активов с помощью формата сжатия текстуры ASTC и уровня 2 -го уровня 2, таргетинг будет выглядеть как:

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

Если вы используете Gradle для создания своего приложения, суффиксы таргетинга удаляются из имени каталога в окончательных APK-файлах или пакетах ресурсов, которые доставляются на пользовательские устройства.

Если вы используете Bundletool напрямую, укажите, хотите ли вы, чтобы суффикс удалялся для каждого измерения отдельно в BundleConfig.json . Пример таргетинга на уровне устройств:

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

Вложенный таргетинг поддерживается в Bundletool 1.14.1 или более поздней версии, а также в плагине Android Gradle 8.2.0-alpha01 или более поздней версии, для которого требуется Gradle 8.1 или более поздней версии.

Дополнительную информацию о том, как настроить конфигурацию для отдельных параметров, можно найти в документации по каждому параметру таргетинга.

Ограничения

  • Вы можете использовать не более двух вложенных измерений. Другими словами, вы не можете одновременно настроить папку, ориентированную на уровень устройства, формат сжатия текстур и страну: вам нужно выбрать 2.

  • Вы должны указать 2 вложенных измерения на том же уровне пути папки. Например, следующее таргетинг папки запрещено, поскольку #TCF_ASTC и #TIER_2 появляются в разных сегментах пути:

.../level1/src/main/assets/character-textures#tcf_astc/level1#tier_2/
  • Вложенные размеры должны быть одинаковыми для всего пакета. Например, у вас не может быть пакета ресурсов, в который вы вкладываете уровни устройств и наборы стран, и другой пакет ресурсов, в который вы вкладываете набор стран и формат сжатия текстур.

  • Значения, которые вы используете для двух измерений, должны быть одинаковыми по всему пакету, и вы должны указать полную комбинацию значений. Например, если вы хотите вложить формат сжатия текстур и набор стран и у вас есть 4 TCF (ASTC, ETC2, PVRTC, резервный вариант по умолчанию) и 3 набора стран (латам, море, резервный вариант по умолчанию), вы должны указать папку для всех 12 комбинаций:

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/…
  • You are allowed to use both nested targeting and single-dimension targeting on distinct content folders in the same asset pack or bundle module. If you use a dimension both in single-dimension targeting and nested targeting, the set of values you use must be always the same ones. Например, вы не можете настроить таргетинг на 4 уровня при одномерном таргетинге на уровень устройств, а затем использовать только 3 уровня при вложении с наборами стран или TCF.