Проект в Android Studio содержит все, что определяет ваше рабочее пространство для приложения: от исходного кода и ресурсов до тестового кода и конфигураций сборки.
При запуске нового проекта Android Studio создаёт необходимую структуру для всех ваших файлов и отображает их в окне проекта . Чтобы открыть это окно, выберите «Вид» > «Окна инструментов» > «Проект» .
На этой странице представлен обзор ключевых компонентов вашего проекта.
Модули
Модуль — это набор исходных файлов и настроек сборки, позволяющий разделить проект на отдельные функциональные единицы. Ваш проект может состоять из одного или нескольких модулей, и один модуль может использовать другой модуль в качестве зависимости. Вы можете собирать, тестировать и отлаживать каждый модуль независимо. Обратите внимание, что в документации Gradle модули могут называться «проектами» или «подпроектами».
Дополнительные модули полезны при создании библиотек кода в вашем собственном проекте или когда вы хотите создать различные наборы кода и ресурсов для различных типов устройств, таких как телефоны и носимые устройства, но при этом сохранить область действия всех файлов в рамках одного проекта и использовать часть кода совместно.
Чтобы добавить новый модуль в свой проект, нажмите Файл > Новый > Новый модуль .
Android Studio предлагает несколько различных типов модулей:
- Модуль приложения Android
Предоставляет контейнер для исходного кода вашего приложения, файлов ресурсов и настроек уровня приложения, таких как файл сборки уровня модуля и файл манифеста Android. При создании нового проекта модуль приложения по умолчанию называется «app».
Android Studio предлагает следующие типы модулей приложений:
- Телефон и планшет
- Автомобильная промышленность
- Wear OS
- Телевидение
Каждый модуль предоставляет основные файлы и некоторые шаблоны кода, подходящие для соответствующего приложения или типа устройства.
Дополнительную информацию о добавлении модуля читайте в статье Добавление модуля для нового устройства .
- Функциональный модуль
- Представляет собой модульную функцию вашего приложения, которая может использовать преимущества Play Feature Delivery . Например, с помощью модулей функций вы можете предоставлять пользователям определённые функции вашего приложения по запросу или в виде мгновенного опыта через Google Play Instant .
Android Studio предлагает следующие типы функциональных модулей:
- Модуль динамических функций
- Модуль библиотеки динамических функций Instant
Чтобы узнать больше, прочтите статью о доставке функций Play .
- Библиотечный модуль
Предоставляет контейнер для вашего повторно используемого кода, который можно использовать в качестве зависимости в других модулях приложения или импортировать в другие проекты. Библиотечный модуль структурно аналогичен модулю приложения, но при сборке он создаёт файл архива кода вместо APK, поэтому его нельзя установить на устройство.
В окне «Создать новый модуль» Android Studio предлагает следующие типы библиотечных модулей:
- Библиотека Android: содержит все типы файлов, поддерживаемые в проекте Android, за исключением нативного кода C++, включая исходный код Java и Kotlin, ресурсы и файлы манифеста. Результатом сборки является файл архива Android (AAR), который можно добавить в качестве зависимости для модулей вашего приложения Android.
- Android Native Library: содержит все типы файлов, поддерживаемые в проекте Android, аналогично библиотеке Android. Однако Android Native Library также могут содержать исходный код на C++. Результатом сборки является файл Android Archive (AAR), который можно добавить в качестве зависимости для модулей вашего приложения Android.
- Библиотека Java или Kotlin: содержит только исходные файлы Kotlin или Java. Результатом сборки является файл архива Java (JAR), который можно добавить в качестве зависимости для модулей вашего приложения Android или других проектов Kotlin или Java.
- Benchmark > Microbenchmark: Содержит файлы, необходимые для регулярного измерения производительности кода и вывода результатов бенчмаркинга. Модули Microbenchmark особенно полезны для измерения производительности небольших фрагментов кода, которые используются часто. Подробнее см. в разделе «О Microbenchmark» .
Когда вы создаете модуль библиотеки и хотите добавить его в качестве зависимости к модулю вашего приложения Android, вы должны объявить его следующим образом:
Круто
dependencies { implementation project(':my-library-module') }
Котлин
dependencies { implementation(project(":my-library-module")) }
- Тестовый модуль
Разделяет тесты от остального кода. Вы можете настроить тестовый модуль для работы с определёнными вариантами сборки.
Android Studio предлагает следующие типы тестовых модулей:
- Генератор базовых профилей: Базовые профили делают взаимодействие пользователя, такое как навигация и прокрутка, более плавным уже при первом запуске. Создавайте базовые профили для критически важных действий пользователя, чтобы улучшить производительность приложения и пользовательский опыт.
- Benchmark > Macrobenchmark: Содержит файлы, необходимые для регулярного измерения производительности кода и вывода результатов бенчмаркинга. Модули Macrobenchmark особенно полезны для измерения производительности в более сложных сценариях использования вашего приложения, таких как прокрутка списка или другие манипуляции с пользовательским интерфейсом. Подробнее см. в разделе «Написание макробенчмарка» .
Файлы проекта

По умолчанию Android Studio отображает файлы вашего проекта в представлении Android . Это представление не отражает фактическую иерархию файлов на диске. Вместо этого оно организовано по модулям и типам файлов для упрощения навигации между ключевыми исходными файлами проекта, скрывая некоторые файлы или каталоги, которые используются нечасто.
Некоторые структурные различия между представлением Android и структурой на диске заключаются в том, что представление Android :
- Показывает все файлы конфигурации, связанные со сборкой проекта, в группе Gradle Script верхнего уровня.
- Показывает все файлы манифеста для каждого модуля в группе на уровне модуля, если у вас есть разные файлы манифеста для разных версий продукта и типов сборки.
- Отображает все альтернативные файлы ресурсов в одной группе, а не в отдельных папках для каждого квалификатора ресурсов. Например, все варианты плотности значка запуска отображаются рядом.
В каждом модуле приложения Android файлы отображаются в следующих группах:
- манифестирует
- Содержит файл
AndroidManifest.xml
. - Ява
- Содержит файлы исходного кода Kotlin и Java, разделенные именами пакетов, включая тестовый код JUnit.
- рез
- Содержит все ресурсы, не относящиеся к коду, такие как строки пользовательского интерфейса и растровые изображения, разделённые на соответствующие подкаталоги. Подробнее о возможных типах ресурсов см. в разделе «Обзор ресурсов приложения» .
Вид проекта

Чтобы увидеть фактическую файловую структуру проекта, включая все файлы, скрытые в представлении Android , выберите «Проект» в меню в верхней части окна «Проект» .
При выборе представления «Проект» вы можете увидеть гораздо больше файлов и каталогов, включая следующие:
-
module-name /
-
build/
- Содержит результаты сборки.
-
libs/
- Содержит частные библиотеки.
-
src/
- Содержит все файлы кода и ресурсов для модуля в следующих подкаталогах:
-
androidTest/
- Содержит код для инструментальных тестов, запускаемых на устройствах Android. Подробнее см. в разделе Тестирование в Android Studio .
-
cpp/
- Содержит нативный код C или C++, использующий Java Native Interface (JNI). Подробнее см. в документации Android NDK .
-
main/
- Содержит «основные» файлы исходного набора: код Android и ресурсы, общие для всех вариантов сборки (файлы для других вариантов сборки находятся в родственных каталогах, например
src/debug/
для типа сборки отладки):-
AndroidManifest.xml
- Описывает природу приложения и каждого из его компонентов. Подробнее см. в обзоре манифеста приложения .
-
java/
- Содержит исходные коды Kotlin или Java, или оба, если ваше приложение имеет исходный код как Kotlin, так и Java.
-
kotlin/
- Содержит только исходные коды Kotlin.
-
res/
- Содержит ресурсы приложения, такие как файлы рисования и файлы строк пользовательского интерфейса. Подробнее см. в обзоре ресурсов приложения .
-
assets/
- Содержит файлы для компиляции в APK-файл «как есть». Например, это хорошее место для текстур и игровых данных. Вы можете перемещаться по этому каталогу так же, как по обычной файловой системе, используя URI, и читать файлы как поток байтов с помощью
AssetManager
.
-
-
test/
- Содержит код для локальных тестов, которые запускаются на вашей хостовой JVM.
-
-
build.gradle
илиbuild.gradle.kts
(модуль) - Это определяет конфигурации сборки, специфичные для модуля.
build.gradle
— правильное имя файла, если вы используете Groovy в качестве языка скрипта сборки, иbuild.gradle.kts
, если вы используете скрипт Kotlin.
-
-
build.gradle
илиbuild.gradle.kts
(проект) - Это определяет конфигурацию сборки, применяемую ко всем модулям. Если вы используете Groovy в качестве языка скрипта сборки, правильным именем файла будет
build.gradle
, а если вы используете скрипт Kotlin, то этоbuild.gradle.kts
. Этот файл является неотъемлемой частью проекта, поэтому поддерживайте его в системе контроля версий, как и весь остальной исходный код.Информацию о других файлах сборки см. в разделе Настройка сборки .
Настройки структуры проекта
Чтобы изменить различные настройки проекта Android Studio, откройте диалоговое окно « Структура проекта» , нажав «Файл» > «Структура проекта» . Оно содержит следующие разделы:
- Проект: устанавливает версию Gradle и плагина Android Gradle, а также имя расположения репозитория.
- Расположение SDK: задает расположение JDK, Android SDK и Android NDK, используемых в вашем проекте.
- Переменные: позволяет редактировать переменные, используемые в скриптах сборки.
- Модули: позволяет редактировать конфигурации сборки для каждого модуля, включая целевой и минимальный SDK, подпись приложения и зависимости от библиотек. Страница настроек каждого модуля разделена на следующие вкладки:
- Свойства: указывает версии SDK и инструментов сборки, которые следует использовать для компиляции модуля.
- Подпись: указывает сертификат, который будет использоваться для подписи вашего приложения .
Зависимости: отображает список зависимостей библиотек, файлов и модулей для данного модуля. На этой панели можно добавлять, изменять и удалять зависимости. Подробнее о зависимостях модулей см. в разделе «Настройка вариантов сборки» .
Варианты сборки: позволяют настраивать различные варианты и типы сборки для вашего проекта.
Варианты: позволяет создавать несколько вариантов сборки, где каждый вариант определяет набор параметров конфигурации, таких как минимальная и целевая версия SDK модуля, а также код и имя версии .
Например, можно определить один вариант с минимальным SDK 21 и целевым SDK 29, а также другой вариант с минимальным SDK 24 и целевым SDK 33.
- Типы сборки: позволяют создавать и изменять конфигурации сборки, как описано в разделе «Настройка вариантов сборки» . По умолчанию каждый модуль имеет типы сборки «отладка» и «релиз» , и при необходимости можно определить дополнительные.