Обзор проектов

Проект в Android Studio содержит все, что определяет рабочую область приложения: от исходного кода и ресурсов до тестового кода и конфигураций сборки.

Когда вы начинаете новый проект, Android Studio создает необходимую структуру для всех ваших файлов и делает их видимыми в окне проекта в Android Studio. Чтобы открыть окно, выберите «Просмотр» > «Окна инструментов» > «Проект» .

На этой странице представлен обзор ключевых компонентов вашего проекта.

Модули

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

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

Чтобы добавить новый модуль в проект, нажмите «Файл» > «Создать» > «Новый модуль» .

Android Studio предлагает несколько различных типов модулей:

Модуль приложения Android
Предоставляет контейнер для исходного кода вашего приложения, файлов ресурсов и настроек уровня приложения, таких как файл сборки уровня модуля и файл манифеста Android. Когда вы создаете новый проект, модуль приложения по умолчанию называется «приложение».

Android Studio предлагает следующие типы модулей приложений:

  • Телефон и планшет
  • Автомобильная промышленность
  • Носить ОС
  • Телевидение
  • Генератор базового профиля
  • Контрольный показатель

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

Дополнительную информацию о добавлении модуля см. в разделе Добавление модуля для нового устройства .

Функциональный модуль
Представляет собой модульную функцию вашего приложения, которая может использовать преимущества доставки функций Play . Например, с помощью функциональных модулей вы можете предоставлять пользователям определенные функции вашего приложения по требованию или в виде мгновенного взаимодействия через Google Play Instant .

Android Studio предлагает следующие типы функциональных модулей:

  • Модуль динамических функций
  • Модуль мгновенной библиотеки динамических функций

Чтобы узнать больше, прочитайте о доставке функций Play .

Библиотечный модуль
Предоставляет контейнер для многократно используемого кода, который можно использовать в качестве зависимости в других модулях приложения или импортировать в другие проекты. Структурно модуль библиотеки аналогичен модулю приложения, но при сборке он создает файл архива кода вместо APK, поэтому его нельзя установить на устройство.

В окне «Создать новый модуль» Android Studio предлагает следующие типы библиотечных модулей:

  • Библиотека Android: содержит все типы файлов, поддерживаемые в проекте Android, за исключением собственного кода C++, включая исходный код Java и Kotlin, ресурсы и файлы манифеста. Результатом сборки является файл Android Archive (AAR), который вы можете добавить в качестве зависимости для модулей вашего приложения Android.
  • Собственная библиотека Android: содержит все типы файлов, поддерживаемые в проекте Android, аналогично библиотеке Android. Однако собственные библиотеки Android также могут содержать собственный исходный код C++. Результатом сборки является файл Android Archive (AAR), который вы можете добавить в качестве зависимости для модулей вашего приложения Android.
  • Библиотека Java или Kotlin: содержит только исходные файлы Kotlin или Java. Результатом сборки является файл Java Archive (JAR), который вы можете добавить в качестве зависимости для своих модулей приложений Android или других проектов Kotlin или Java.

Модули иногда называют подпроектами , поскольку Gradle также называет модули проектами.

Когда вы создаете библиотечный модуль и хотите добавить его в качестве зависимости к модулю приложения Android, вы должны объявить его следующим образом:

классный

dependencies {
    implementation project(':my-library-module')
}

Котлин

dependencies {
    implementation(project(":my-library-module"))
}

Файлы проекта

По умолчанию 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 (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 (проект)
Это определяет вашу конфигурацию сборки, которая применяется ко всем модулям. build.gradle — правильное имя файла, если вы используете Groovy в качестве языка сценариев сборки, и build.gradle.kts , если вы используете сценарий Kotlin. Этот файл является неотъемлемой частью проекта, поэтому храните его под контролем версий вместе со всем остальным исходным кодом.

Информацию о других файлах сборки см. в разделе Настройка сборки .

Настройки структуры проекта

Чтобы изменить различные настройки проекта Android Studio, откройте диалоговое окно «Структура проекта» , нажав «Файл» > «Структура проекта» . Он содержит следующие разделы:

  • Проект: устанавливает версию Gradle и плагина Android Gradle , а также имя местоположения репозитория.
  • Местоположение SDK: устанавливает расположение JDK, Android SDK и Android NDK, которые использует ваш проект.
  • Переменные: позволяет редактировать переменные, используемые в сценариях сборки.
  • Модули: позволяет редактировать конфигурации сборки для конкретного модуля, включая целевой и минимальный SDK, подпись приложения и зависимости библиотеки. Страница настроек каждого модуля разделена на следующие вкладки:
    • Свойства: указывает версии SDK и инструментов сборки, которые будут использоваться для компиляции модуля.
    • Подписание: указывает сертификат, который будет использоваться для подписи вашего приложения .
  • Зависимости: список зависимостей библиотеки, файла и модуля для этого модуля. На этой панели вы можете добавлять, изменять и удалять зависимости. Дополнительные сведения о зависимостях модулей см. в разделе Настройка вариантов сборки .

  • Варианты сборки: позволяет настраивать различные варианты и типы сборки для вашего проекта.

    • Варианты: позволяет создавать несколько вариантов сборки, где каждый вариант определяет набор параметров конфигурации, таких как минимальная и целевая версия SDK модуля, а также код версии и имя версии .

      Например, вы можете определить один вариант с минимальным SDK 21 и целевым SDK 29, а другой вариант с минимальным SDK 24 и целевым SDK 33.

    • Типы сборок. Позволяет создавать и изменять конфигурации сборок, как описано в разделе Настройка вариантов сборки . По умолчанию каждый модуль имеет типы сборки отладки и выпуска , и при необходимости вы можете определить дополнительные типы.