Структура файлов проекта
Рассмотрим внимательно дерево каталогов и файлы проекта.

manifest
AndroidManifest.xml
AndroidManifest.xml — это конфигурационный файл, который содержит всю основную информацию о приложении, включая его компоненты, разрешения, настройки и зависимости.
MainActivity.java — это основной класс активности в любом Android-приложении. Он отвечает за создание и управление основным экраном приложения. В этом классе обычно реализуются методы жизненного цикла активности, взаимодействие с пользователем через интерфейс, а также логика обработки событий.
res
Директория res в проекте Android-приложения содержит ресурсы, используемые приложением. Ресурсы включают изображения, макеты, строки, цвета, стили и многое другое. Они помогают сделать приложение адаптивным и удобным для различных устройств и языков.
-
drawable
- Изображения (PNG, JPEG) и векторные рисунки (SVG).
- Могут использоваться для фона, кнопок, значков и других визуальных элементов.
-
layout
- XML-файлы, определяющие структуру интерфейса приложения.
- Используются для описания расположения виджетов (кнопок, текстов, списков и т.д.) на экране.
-
mipmap
- Иконки приложения для различных разрешений экрана.
- Поддерживают разные плотности пикселей (mdpi, hdpi, xhdpi и т.д.).
-
values
- Файлы ресурсов, содержащие различные значения, такие как строки, цвета, размеры и стили.
- Позволяют централизованно управлять текстовыми строками, цветами и размерами, что упрощает локализацию и адаптацию приложения.
-
xml
- XML-файлы для различных целей, таких как навигационные графы, меню, конфигурации и т.д.
- Например,
nav_graph.xml
для навигационных графов в Jetpack Navigation.
Gradle Scripts
Gradle — это система автоматизации сборки, широко используемая в проектах Android.
Gradle Scripts — это набор скриптов, написанных на Groovy или Kotlin DSL, которые управляют процессом сборки проекта, конфигурируют зависимости, плагины и другие аспекты сборки.
-
build.gradle (Project Level)
- Находится в корневой директории проекта.
- Определяет общие настройки для всего проекта, включая версии плагинов, репозитории и зависимости.
-
build.gradle (Module Level)
- Находится в каждой модуле проекта (например, app).
- Конфигурирует конкретные параметры сборки для модуля, такие как зависимости, варианты сборки, подписи и т.д.
-
settings.gradle
- Определяет список модулей, входящих в проект.
- Управляет настройками общего уровня проекта.
Зачем нужен Gradle?
Gradle позволяет автоматизировать процесс сборки, управления зависимостями и конфигурациями. Правильная настройка этих скриптов значительно упрощает разработку и поддержку приложения.