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

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

Вложенный таргетинг позволяет определить критерии таргетинга, объединяющие до двух параметров таргетинга.

Формат

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

Например, чтобы настроить таргетинг на папку ресурсов по формату сжатия текстур ASTC и уровню устройства 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.

  • Вам следует указать два вложенных измерения на одном уровне пути к папке. Например, запрещен следующий таргетинг на папки, поскольку #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/…
  • Вам разрешено использовать как вложенный таргетинг, так и одномерный таргетинг для отдельных папок контента в одном пакете ресурсов или модуле пакета. Если вы используете параметр как для однопараметрического, так и для вложенного таргетинга, набор используемых вами значений должен всегда быть одним и тем же. Например, вы не можете настроить таргетинг на 4 уровня при одномерном таргетинге на уровень устройств, а затем использовать только 3 уровня при вложении с наборами стран или TCF.