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

Проект в 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.

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