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

В 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.

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