В Android Studio проект содержит всё, что определяет рабочее пространство для приложения, от исходного кода и ресурсов до тестового кода и конфигураций сборки.
При создании нового проекта Android Studio создает необходимую структуру для всех ваших файлов и отображает их в окне «Проект» в Android Studio. Чтобы открыть это окно, выберите «Вид» > «Окна инструментов» > «Проект» .
На этой странице представлен обзор ключевых компонентов вашего проекта.
Модули
Модуль — это набор исходных файлов и параметров сборки, позволяющий разделить проект на отдельные функциональные блоки. Ваш проект может содержать один или несколько модулей, и один модуль может использовать другой модуль в качестве зависимости. Вы можете независимо собирать, тестировать и отлаживать каждый модуль. Обратите внимание, что в документации Gradle модули могут называться «проектами» или «подпроектами».
Дополнительные модули полезны при создании библиотек кода в рамках собственного проекта или когда вы хотите создать различные наборы кода и ресурсов для разных типов устройств, таких как телефоны и носимые устройства, но при этом сохранить все файлы в рамках одного проекта и использовать общий код.
Чтобы добавить новый модуль в проект, нажмите Файл > Создать > Новый модуль .
Android Studio предлагает несколько различных типов модулей:
- модуль приложения для Android
Предоставляет контейнер для исходного кода вашего приложения, файлов ресурсов и настроек уровня приложения, таких как файл сборки на уровне модуля и файл Android Manifest. При создании нового проекта модуль приложения по умолчанию называется "app".
Android Studio предлагает следующие типы модулей для приложений:
- Телефон и планшет
- Автомобильная промышленность
- Wear OS
- Телевидение
Каждый модуль содержит необходимые файлы и некоторые шаблоны кода, подходящие для соответствующего типа приложения или устройства.
Для получения более подробной информации о добавлении модуля, ознакомьтесь с разделом «Добавление модуля для нового устройства» .
- Модуль функций
- Представляет собой модульную функцию вашего приложения, которая может использовать преимущества Play Feature Delivery . Например, с помощью модулей функций вы можете предоставлять пользователям определенные функции вашего приложения по запросу или в виде мгновенных возможностей через Google Play Instant .
Android Studio предлагает следующие типы функциональных модулей:
- Динамический функциональный модуль
- Модуль библиотеки динамических функций мгновенного действия
Чтобы узнать больше, прочтите статью о предоставлении функций Play .
- Модуль библиотеки
Предоставляет контейнер для вашего многократно используемого кода, который вы можете использовать в качестве зависимости в других модулях приложения или импортировать в другие проекты. Структурно библиотечный модуль аналогичен модулю приложения, но при сборке он создает архивный файл кода вместо APK, поэтому его нельзя установить на устройство.
В окне «Создать новый модуль» Android Studio предлагает следующие типы библиотечных модулей:
- Библиотека Android: содержит все типы файлов, поддерживаемые в проекте Android, за исключением нативного кода C++, включая исходный код Java и Kotlin, ресурсы и файлы манифеста. Результатом сборки является файл Android Archive (AAR), который можно добавить в качестве зависимости для модулей вашего приложения Android.
- Библиотека Android Native: содержит все типы файлов, поддерживаемые в проекте Android, аналогично библиотеке Android. Однако библиотеки Android Native также могут содержать исходный код нативного C++. В результате сборки получается файл Android Archive (AAR), который можно добавить в качестве зависимости для модулей вашего приложения Android.
- Библиотека Java или Kotlin: содержит только исходные файлы Kotlin или Java. В результате сборки получается JAR-файл (Java Archive), который можно добавить в качестве зависимости для модулей вашего 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 особенно полезны для измерения производительности более сложных сценариев использования вашего приложения, таких как прокрутка списка или другие манипуляции с пользовательским интерфейсом. Для получения дополнительной информации см. раздел «Написание Macrobenchmark» .
Файлы проекта

По умолчанию Android Studio отображает файлы вашего проекта в представлении Android . Это представление не отражает фактическую иерархию файлов на диске. Вместо этого оно организовано по модулям и типам файлов, чтобы упростить навигацию между ключевыми исходными файлами вашего проекта, скрывая определенные файлы или каталоги, которые используются нечасто.
Некоторые структурные различия между представлением Android и структурой на диске заключаются в следующем: представление Android :
- Отображает все файлы конфигурации проекта, связанные со сборкой, в группе скриптов Gradle верхнего уровня.
- Отображает все файлы манифеста для каждого модуля в группе модулей, если у вас есть разные файлы манифеста для разных вариантов продукта и типов сборки.
- Отображает все альтернативные файлы ресурсов в одной группе, а не в отдельных папках для каждого квалификатора ресурса. Например, все варианты плотности вашей иконки запуска отображаются рядом.
В каждом модуле Android-приложения файлы отображаются в следующих группах:
- манифесты
- Содержит файл
AndroidManifest.xml. - java
- Содержит файлы исходного кода на 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/для типа сборки debug):-
AndroidManifest.xml - Описывает суть приложения и каждый из его компонентов. Для получения дополнительной информации см. обзор манифеста приложения .
-
java/ - Содержит исходный код на Kotlin или Java, или на обоих языках, если ваше приложение содержит исходный код как на Kotlin, так и на Java.
-
kotlin/ - Содержит только исходный код на Kotlin.
-
res/ - Содержит ресурсы приложения, такие как файлы изображений и файлы строк пользовательского интерфейса. Для получения дополнительной информации см. обзор ресурсов приложения .
-
assets/ - Содержит файлы, которые будут скомпилированы в APK-файл в неизмененном виде. Например, это хорошее место для текстур и игровых данных. Вы можете перемещаться по этому каталогу так же, как и по обычной файловой системе, используя URI, и читать файлы как поток байтов с помощью
AssetManager.
-
-
test/ - Содержит код для локальных тестов, которые запускаются на вашей хост-машинной JVM.
-
-
build.gradleилиbuild.gradle.kts(модуль) - Это определяет конфигурации сборки для каждого модуля. Если вы используете Groovy в качестве языка сценариев сборки, то правильное имя файла —
build.gradle, а если вы используете Kotlin, тоbuild.gradle.kts.
-
-
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.
- Типы сборки: Позволяет создавать и изменять конфигурации сборки, как описано в разделе «Настройка вариантов сборки» . По умолчанию каждый модуль имеет типы сборки «отладка» и «релиз» , и вы можете определить дополнительные по мере необходимости.