Ресурсы приложения, такие как значки приложений, локализованные строки и растровые изображения, организованы в каталоги, специфичные для каждого типа, внутри каталога res/ каждого модуля. Вы также можете добавить альтернативные версии каждого файла, оптимизированные для различных конфигураций устройств, например, версию растрового изображения с высоким разрешением для экранов с высокой плотностью пикселей.
Android Studio позволяет добавлять новые и альтернативные ресурсы несколькими способами, в зависимости от типа добавляемого ресурса. На этой странице описано, как добавлять базовые файлы ресурсов, как изменять расположение ресурсов и как работает слияние ресурсов.
В Jetpack Compose вы определяете пользовательский интерфейс на Kotlin, а не с помощью XML-макетов. Однако вы по-прежнему используете каталог res/ для хранения статических ресурсов уровня приложения, таких как значки, шрифты и переводы. Чтобы узнать, как получить доступ к этим ресурсам в ваших компонуемых функциях, см. раздел «Ресурсы в Compose» .
Подробную информацию о создании конкретных типов ресурсов см. на следующих страницах:
- Чтобы добавить строковые файлы, см. раздел «Локализация пользовательского интерфейса с помощью редактора переводов» .
- Чтобы добавить растровые изображения, см. раздел «Создание значков приложений» .
- Чтобы добавить файлы SVG, см. раздел «Добавление векторной графики различной плотности» .
Информацию о том, как ссылаться на ресурсы из кода вашего приложения, см. в разделе «Обзор ресурсов приложения» .
Добавьте XML-файл ресурсов.
Хотя ссылки на предыдущих страницах описывают рабочие процессы, адаптированные к каждому типу ресурсов, вы можете добавить любой XML-файл ресурса, выполнив следующие шаги:
- В окне «Проект» выберите целевой модуль приложения в режиме просмотра Android или «Проект» .
- Выберите Файл > Создать > Файл ресурсов Android .

Рисунок 1. Диалоговое окно «Создать новый файл ресурсов» .
- Заполните необходимые данные в диалоговом окне:
- Имя файла : Введите имя для XML-файла (расширение
.xmlне требуется). - Тип ресурса : Выберите тип ресурса, который вы хотите создать.
- Корневой элемент : Если применимо, выберите корневой XML-элемент для файла. Некоторые типы ресурсов поддерживают только один тип корневого элемента. В зависимости от выбранного типа ресурса, он может быть недоступен для редактирования.
- Набор источников : Выберите набор источников , куда вы хотите сохранить файл.
- Имя каталога : Имя каталога должно соответствовать типу ресурса и параметрам конфигурации. Не изменяйте это поле, если только вы не хотите вручную добавить параметры конфигурации к имени каталога (вместо этого используйте параметр «Доступные параметры »).
- Доступные квалификаторы : Вместо того чтобы вручную добавлять квалификаторы конфигурации в имя каталога, вы можете сделать это, выбрав квалификатор из списка и нажав кнопку «Добавить».
.
- Имя файла : Введите имя для XML-файла (расширение
- После того, как вы добавите все необходимые параметры, нажмите кнопку ОК .
Встроенные сложные XML-ресурсы
Для некоторых сложных ресурсов требуется несколько XML-файлов. Например, хотя Compose обладает мощными API для анимации , вам может потребоваться использовать анимированный векторный рисунок, который содержит объект векторного рисунка и объект анимации и требует как минимум три XML-файла.
В этом примере вы можете создать и сохранить три отдельных XML-файла, если вам нужно повторно использовать один или несколько из них. Но если XML-файлы используются только для этого анимированного векторного изображения, вы можете вместо этого использовать формат встроенных ресурсов, предоставляемый инструментом упаковки ресурсов Android (AAPT). С помощью AAPT вы можете определить все три ресурса в одном XML-файле. Для получения дополнительной информации см. раздел «Встроенные сложные XML-ресурсы» .
Добавить каталог ресурсов
Чтобы добавить новый каталог ресурсов, выполните следующие действия:
- В окне «Проект» щелкните целевой модуль приложения.
- Выберите Файл > Создать > Каталог ресурсов Android .

Рисунок 2. Диалоговое окно «Создать каталог ресурсов» .
- Заполните необходимые данные в диалоговом окне:
- Имя каталога : Имя каталога должно соответствовать типу ресурса и комбинации конфигурационных квалификаторов. Не изменяйте это поле, если не хотите добавлять конфигурационные квалификаторы к имени каталога вручную (вместо этого используйте квалификатор «Доступные »).
- Тип ресурса: Выберите тип ресурса, который должен содержаться в каталоге.
- Набор источников: Выберите набор источников, в который вы хотите переместить каталог.
- Доступные квалификаторы: Вместо того чтобы вручную добавлять квалификаторы конфигурации в имя каталога, вы можете сделать это, выбрав квалификатор из списка и нажав кнопку «Добавить».
.
- После того, как вы добавите все необходимые параметры, нажмите кнопку ОК .
Измените каталог ресурсов.
По умолчанию ваши ресурсы находятся в module-name /src/ source-set-name /res/ . Например, ресурсы для основного набора исходных кодов вашего модуля находятся в src/main/res/ , а ресурсы для отладочного набора исходных кодов — в src/debug/res/ .
Однако вы можете изменить эти пути на любое другое местоположение (относительно файла build.gradle ) с помощью свойства res.srcDirs в блоке sourceSets . Например:
Классный
android { sourceSets { main { res.srcDirs = ['resources/main'] } debug { res.srcDirs = ['resources/debug'] } } }
Котлин
android { sourceSets { getByName("main") { res.srcDirs("resources/main") } getByName("debug") { res.srcDirs("resources/debug") } } }
Вы также можете указать несколько каталогов ресурсов для одного набора исходных файлов, после чего инструменты сборки объединят их. Например:
Классный
android { sourceSets { main { res.srcDirs = ['res1', 'res2'] } } }
Котлин
android { sourceSets { main { res.srcDirs("res1", "res2") } } }
Для получения более подробной информации ознакомьтесь с разделом «Наборы источников» .
Объединение ресурсов
Ресурсы в итоговом файле приложения могут поступать из трех источников:
- Основной набор исходных файлов (обычно расположенный в
src/main/res/) - Наборы исходных кодов для сборки вариантов
- Библиотеки Android (AAR-файлы)
Когда все ресурсы из каждого набора исходных файлов или библиотеки уникальны, они добавляются в итоговое приложение. Ресурс считается уникальным, если его имя файла уникально как в пределах каталога типа ресурса , так и в пределах квалификатора ресурса (если он определен).
Если существует две или более совпадающих версий одного и того же ресурса, то в итоговое приложение будет включена только одна версия. Инструменты сборки выбирают, какую версию сохранить, на основе следующего порядка приоритетов (наивысший приоритет слева):
Вариант сборки > Тип сборки > Вариант продукта > Основной набор исходных кодов > Зависимости библиотек
Например, если основной набор исходных файлов содержит:
-
res/values/strings.xml -
res/values-es/strings.xml
А тип отладочной сборки содержит:
-
res/values/strings.xml
В итоге в итоговое приложение будут включены файлы res/values/strings.xml из отладочной сборки и res/values-es/strings.xml из основного набора исходных файлов.
Однако, если в конфигурации сборки указано несколько папок ресурсов для заданного набора исходных файлов, и между этими файлами возникают конфликты, возникает ошибка, и слияние завершается неудачей, поскольку каждая директория ресурсов имеет одинаковый приоритет.