# Структура проекта В открывшемся проекте мы увидмим структуру: ![alt text](https://github.com/sibsutisTelecomDep/blog/blob/main/book/figures/android/basic_02_project_structure.PNG?raw=true) Рис. 1. Стркутура проекта. Вкратце, проект состоит из нескольких важный директорий: - `/app` включает в себя еще 3 директории: - `/manifest` - содержит файлы конфигурации\\манифеста приложения (ключевой файл в приложении Android); - `/kotlin + java` - содержит исходный код приложения; - `/res` - включает в себя файлы, используемые приложением Android (картинки, иконки, стили, музыка и т.д.); - `/Gradle Scripts`- управляет сборкой, тестированиеи и внедрением вашего приложения. ## AndroidManifests.xml Файл `AndroidManifest.xml` является одним из самых важных в Android проекте. В нем содержится информация о пакетах приложения, компонентах типа `Activity`, `Service` и т.д.. Файл `AndroidManifest.xml` выполняет следующие задачи: - Предоставляет разрешения приложению на использование или доступ к другим компонентам системы. - Определяет как будут запускаться, например, Activity (какие фильтры использовать). ## /res В папке `/res` расположены все используемые приложением ресурсы, включая изображения, различные xml файлы, анимации, звуковые файлы и многие другие. Внутри папки **res** эти все ресурсы распределены по своим папкам: - Папка `/drawable` содержит файлы с изображениями, которые будет использоваться в приложении; - Папка `/layout` располагает xml файлами, которые используются для построения пользовательского интерфейса Android приложения; - В папке `/menu` находятся xml файлы, используемые только для создания меню; - В `/mipmap` папке хранят только значки приложения. Любые другие drawable элементы должны быть размещены в своей папке; - `/values` хранит те xml файлы, в которых определяются простые значения типа строк, массивов, целых чисел, размерностей, цветов и стилей. ## Gradle Скрипты Gradle используются для автоматизации сборки проекта. Android Studio выполняет сборку приложения в фоновом режиме без какого-либо вмешательства со стороны разработчика. Этот процесс сборки осуществляется с использованием системы Gradle — инструментария для автоматической сборки с помощью набора конфигурационных файлов. Gradle скрипты написаны на языке `groove`.