Таргетинг на устройства дает вам более точный контроль над тем, какие части вашего пакета приложений доставляются на определенные устройства. Например, вы можете гарантировать, что большой ресурс будет доставлен только на устройства с большим объемом оперативной памяти, или вы можете доставлять разные версии ресурса на разные устройства.
Вы можете настроить таргетинг на такие свойства устройства, как:
- Модель устройства
- ОЗУ устройства
- Возможности системы
- Система на кристалле (для устройств с уровнем API не ниже 31)
Обзор необходимых шагов
Для включения таргетинга на устройства необходимо выполнить следующие шаги:
- Определите группы устройств в файле конфигурации таргетинга устройств.
- Укажите, какие части вашего пакета должны быть отправлены в те или иные группы устройств.
- Необязательно: протестируйте свою конфигурацию локально.
- Загрузите свой пакет (содержащий файл конфигурации) в Google Play.
Плагин Android Gradle против плагина Play Unity
Точные необходимые шаги различаются в зависимости от того, создаете ли вы свое приложение с помощью Android Gradle Plugin или Play Unity Plugin. Перед продолжением выберите настройку сборки:
Проверьте версию плагина Android Gradle
Чтобы использовать таргетинг на устройства, убедитесь, что версия вашего Android Gradle Plugin (AGP) не ниже 8.10.0-alpha01. Он входит в состав Android Studio Meerkat 2 и выше.
Включить таргетинг на устройства в плагине Android Gradle
Выбор устройства должен быть явно включен в файле gradle.properties
:
android.experimental.enableDeviceTargetingConfigApi=true
Создайте XML-файл конфигурации таргетинга устройства
Файл конфигурации таргетинга устройств — это XML-файл, в котором вы определяете свои пользовательские группы устройств. Например, вы можете определить группу устройств с именем high_ram
, которая содержит все устройства с объемом оперативной памяти не менее 8 ГБ:
<config:device-targeting-config
xmlns:config="http://schemas.android.com/apk/config">
<config:device-group name="high_ram">
<config:device-selector ram-min-bytes="8000000000"/>
</config:device-group>
</config:device-targeting-config>
Группа устройств состоит из максимум 5 селекторов устройств . Устройство включается в группу устройств, если оно удовлетворяет любому из ее селекторов устройств.
Селектор устройств может иметь одно или несколько свойств устройства . Устройство выбирается, если оно соответствует всем свойствам устройства селектора.
Доступные свойства устройства
- device_ram : Требования к оперативной памяти устройства
- min_bytes ( включительно) : минимально необходимый объем оперативной памяти (в байтах)
- max_bytes ( не включительно) : максимальный требуемый объем оперативной памяти (в байтах)
- included_device_ids : Модели устройств, которые будут включены в этот селектор (макс. 10000 device_id на группу) . Это свойство выполняется, если устройство соответствует любому device_id в списке.
- build_brand : Производитель устройства
- build_device : Код модели устройства
- exclude_device_ids : Модели устройств, которые следует исключить в этом селекторе (макс. 10000 device_id на группу) . Это свойство выполняется, если устройство не соответствует ни одному device_id в списке.
- build_brand : Производитель устройства
- build_device : Код модели устройства
required_system_features : Функции, которые должны быть у устройства, чтобы быть включенными в этот селектор (макс. 100 функций на группу) . Устройство должно иметь все системные функции из этого списка, чтобы удовлетворять этому свойству.
Справочник по системным функциям
- имя : Системная функция
denied_system_features : Функции, которые устройство не должно включать в этот селектор (максимум 100 функций на группу) . Если устройство имеет какие-либо системные функции из этого списка, оно не удовлетворяет этому свойству.
Справочник по системным функциям
- имя : Системная функция
system-on-chip : Система на чипах, которая будет включена в этот селектор. Устройство должно иметь любой чип из этого списка, чтобы удовлетворять этому свойству. Система на чипах может быть нацелена только на устройства с уровнем API не ниже 31 .
- производитель : Производитель систем на кристалле
- модель : Модель системы на чипе
Включение нескольких свойств в один селектор создает логическое И, например:
<config:device-selector ram-min-bytes="7000000000">
<config:included-device-id brand="google" device="flame"/>
</config:device-selector>
создаст условие для всех устройств с > 7 ГБ ОЗУ И это Pixel 4, также записанное следующим образом:
Если вам нужно условие ИЛИ, создайте отдельные селекторы в одной группе устройств, например:
<config:device-selector ram-min-bytes="7000000000"/>
<config:device-selector>
<config:included-device-id brand="google" device="flame"/>
</config:device-selector>
создаст условие для всех устройств с > 7 ГБ ОЗУ ИЛИ если это Pixel 4, также записанное следующим образом:
Вот пример, показывающий все возможные свойства устройства:
<config:device-targeting-config
xmlns:config="http://schemas.android.com/apk/config">
<config:device-group name="myCustomGroup1">
<config:device-selector ram-min-bytes="8000000000">
<config:included-device-id brand="google" device="redfin"/>
<config:included-device-id brand="google" device="sailfish"/>
<config:included-device-id brand="good-brand"/>
<config:excluded-device-id brand="google" device="caiman"/>
<config:system-on-chip manufacturer="Sinclair" model="ZX80"/>
<config:system-on-chip manufacturer="Commodore" model="C64"/>
</config:device-selector>
<config:device-selector ram-min-bytes="16000000000"/>
</config:device-group>
<config:device-group name="myCustomGroup2">
<config:device-selector ram-min-bytes="4000000000" ram-max-bytes="8000000000">
<config:required-system-feature name="android.hardware.bluetooth"/>
<config:required-system-feature name="android.hardware.location"/>
<config:forbidden-system-feature name="android.hardware.camera"/>
<config:forbidden-system-feature name="mindcontrol.laser"/>
</config:device-selector>
</config:device-group>
</config:device-targeting-config>
Официальные коды производителя и модели устройства
Вы можете найти правильный формат кода производителя и модели устройства, используя Каталог устройств в Google Play Console, выполнив одно из следующих действий:
Проверка отдельных устройств с помощью каталога устройств и поиск кода производителя и модели в местах, как показано в примере ниже (для Google Pixel 4a производитель — «Google», а код модели — «sunfish»):
Загрузка CSV-файла поддерживаемых устройств и использование кода производителя и модели для полей build_brand и build_device соответственно.
Включите файл конфигурации таргетинга вашего устройства в ваш пакет приложений
Добавьте следующее в файлbuild.gradle
вашего основного модуля: android {
...
bundle {
deviceTargetingConfig = file('device_targeting_config.xml')
deviceGroup {
enableSplit = true // split bundle by #group
defaultGroup = "other" // group used for standalone APKs
}
}
...
}
device_targeting_config.xml
— это путь к вашему файлу конфигурации относительно основного модуля. Это гарантирует, что ваш файл конфигурации упакован вместе с вашим пакетом приложений.
Предложение deviceGroup
гарантирует, что APK-файлы, созданные из вашего пакета, будут разделены по группам устройств.
Таргетинг устройств для доставки функций Play
Чтобы использовать таргетинг на устройства с помощью Play Feature Delivery, см. документацию по условной доставке .
Таргетинг устройств для Play Asset Delivery
Чтобы использовать таргетинг устройств с Play Asset Delivery, см . документацию по пакетам ресурсов .
Таргетинг на устройства для доставки модели ИИ на устройства
Чтобы использовать таргетинг на устройство с Play для искусственного интеллекта на устройстве, см. документацию по пакетам искусственного интеллекта .
Сообщить об ошибках
Сообщайте о любых ошибках в общедоступной системе отслеживания ошибок .