Какая папка в структуре приложения Android содержит файлы исходного кода Java

Обновлено: 21.11.2024

В окне инструмента "Проект" есть несколько представлений, включая представление Android, представление "Проект" и представление "Пакеты". В каждом представлении отображаются одни и те же данные, но в каждом представлении они организованы немного по-разному.

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

При создании приложения в Android Studio вы обнаружите, что проект разделен на папку приложения и сценарии Gradle.

Папка App содержит три подпапки ( manifests , java и res ), из которых состоит ваше приложение. Они разделены таким образом, что должно быть довольно легко определить, какие ресурсы находятся в какой папке.

Если вы развернете все папки в проводнике проекта, вы увидите огромное количество файлов и папок. Большинство из них управляются Android Studio. Мы сосредоточимся на ключевых папках и типах файлов, которые мы будем использовать как разработчики Android.

1. Папка с манифестами

Здесь вы должны разместить свои файлы манифеста. Большинство приложений для Android имеют один файл манифеста. Но у приложения может быть несколько файлов манифеста из-за версии приложения или для поддержки определенного оборудования.

Файл AndroidManifest.xml создается в папке манифеста Android Studio при создании проекта. Этот файл содержит параметры конфигурации проекта, такие как разрешения, службы и дополнительные библиотеки. Файл манифеста также предоставляет ОС и магазину Google Play информацию о вашем приложении.

2. Папка Java

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

Android Studio автоматически создает файл MainActivity.java в этой папке. Все ваши классы будут доступны здесь, и Android Studio даже объединит путь к пакету, чтобы вы могли работать с файлами, не просматривая папки, из которых состоит ваш пакет.

3. Папка Res

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

Когда вы используете Android Studio для создания нового приложения, некоторые папки будут созданы автоматически. Однако эти папки не единственные, которые вы можете использовать в своем проекте. Ниже перечислены папки, которые можно использовать внутри папки res:

3.1. Папка с возможностью рисования

Растровый файл
Android поддерживает растровые файлы трех форматов: .jpg (предпочтительно), .jpg (допустимо), .jpg (не рекомендуется).

Файл с девятью исправлениями
Файл с девятью исправлениями в формате PNG с растягиваемыми областями, позволяющими изменять размер изображения в зависимости от содержимого.

Список слоев
XML-файл, содержащий массив, состоящий из других рисунков.

Список состояний
XML-файл, используемый для изображений, которые имеют несколько или разные состояния отображения.

Список уровней
XML-файл, который используется для отображения других рисунков, к которым можно получить доступ на основе уровня, запрошенного с помощью setImageLevel().

Переходный объект
XML-файл, содержащий рисуемый объект, который можно перемещать между двумя элементами.

Inset drawable
XML-файл, который используется для размещения одного drawable внутри границ другого drawable.

Clip drawable
XML-файл, состоящий из точек, который используется в сочетании с другим drawable для создания обрезанного объекта.

Scale drawable
XML-файл, содержащий drawable, который изменяет значение размера другого drawable на основе его текущего значения.

3.2. Папка макета

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

Android Studio автоматически создает файл activity_main.xml в этой папке. Папка макета может иметь несколько папок макета для работы с разными устройствами. Это может быть полезно при работе с макетами, которые необходимо настроить для устройств с большим или меньшим количеством свободного места на экране.

3.3. Папка Mipmap

Папка mipmap содержит файлы значков запуска для приложения. Значок запуска — это изображение, которое представляет ваше приложение для пользователей. Папка mipmap появилась в Android 4.3.

3.4. Папка значений

  • colors.xml
  • strings.xml
  • стили.XML

3.5. Другие папки

animator
XML-файлы, определяющие анимацию свойств.

anim
XML-файлы, определяющие анимацию движения.

color
XML-файлы, определяющие список цветов состояния.

menu
XML-файлы, определяющие меню приложения.

raw
Любые файлы для сохранения в необработанном виде. Например, звуковые и видеофайлы помещаются в папку raw.

xml
Любые XML-файлы, которые можно прочитать во время выполнения.

Скрипты Gradle

Файлы Apk создаются с использованием системы сборки gradle, интегрированной в Android Studio. Когда мы запускаем приложение, скрипты сборки Gradle создаются автоматически. Если у вас есть особые требования к вашему проекту, вы можете указать их здесь.

сообщить об этом объявлении

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

Соглашения об именах

Обязательно ознакомьтесь с Кодексом и рекомендациями по стилю Ribot, чтобы получить более подробную информацию о предлагаемом стиле и правилах именования.

Для кода Java

Для кода Java важны следующие соглашения об именах и регистрах:

< tbody>
Тип Пример Описание Ссылка
Переменная Ставка подоходного налога Все переменные должны быть в верблюжьем регистре Подробнее
Константа DAYS_IN_WEEK Все константы должны быть в верхнем регистре Подробнее
Метод< /td> convertToEuroDollars Все методы должны быть в верблюжьем регистре Подробнее
Параметр depositAmount Все имена параметров должны быть написаны в верблюжьем регистре Подробнее

Подробнее см. в этом руководстве по присвоению имен.

Для Android-классов

Названия классов Android должны соответствовать определенному соглашению, которое ясно указывает на их назначение. Например, все действия должны заканчиваться на Activity, как в MoviesActivity. Ниже приведены наиболее важные соглашения об именах:

Имя Соглашение Наследует
Activity CreateTodoItemActivity AppCompatActivity, Activity
Адаптер списка TodoItemsAdapter BaseAdapter , ArrayAdapter
Помощник базы данных TodoItemsDbHelper SQLiteOpenHelper
Сеть Клиент TodoItemsClient Н/Д
Фрагмент TodoItemDetailFragment Фрагмент
Сервис FetchTodoItemService Сервис, IntentService
< /p>

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

Структура папок Android

Существует несколько рекомендаций по организации структуры пакета вашего приложения.

Упорядочить пакеты по категориям

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

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

Организация пакетов по функциям приложения

В качестве альтернативы мы можем упаковывать по функциям, а не по уровням. Этот подход использует пакеты для отражения набора функций. Рассмотрим следующую структуру пакета, описанную в этом посте:

  • com.example.myapp.service.* — это подпакет для всех пакетов/классов фоновых служб.
  • com.example.myapp.ui.* — это подпакет для всех пакетов/классов, связанных с пользовательским интерфейсом.
  • com.example.myapp.ui.mainscreen – содержит классы, относящиеся к главному экрану некоторых приложений.
  • com.example.myapp.ui.detailsscreen — содержит классы, связанные с экраном сведений об элементе приложения.

Эта функция позволяет разместить DetailsActivity , DetailsFragment , DetailsListAdapter , DetailsItemModel в одном пакете, что обеспечивает удобную навигацию при работе с функцией "детали элемента".

Классы DetailsListAdapter и DetailsItemModel и/или их свойства можно сделать закрытыми для пакета и, таким образом, не отображать их за пределами пакета. В пакете вы можете получить доступ к их свойствам напрямую, не создавая тонны шаблонных методов "setter".

Это может сделать создание объектов очень простым и интуитивно понятным, в то время как объекты остаются неизменными вне пакета.

Организация ресурсов

Ресурсы должны быть разделены на следующие ключевые файлы и папки:

< td>Здесь мы размещаем определения цветов. < /tbody>
Имя Путь Описание
XML-макеты res/layout/ Здесь мы размещаем наши XML-файлы макетов.
XML-меню res/menu/ Здесь мы размещаем действия меню AppBar.
Drawables res/drawable< /td> Здесь мы размещаем изображения и чертежи XML.
Цвета res/values/colors.xml
Размеры res/values/dimens.xml Здесь мы поместите значения измерений.
Строки res/values/strings.xml Здесь мы поместим строки.
Стили res/values/styles.xml Здесь мы размещаем значения стилей.

Полный список ресурсов см. здесь и обратите внимание на следующее:

  • Не задавайте в макете шестнадцатеричные значения цветов. Вместо жесткого кодирования этих значений обязательно переместите все цвета в файл res/values/colors.xml и ссылайтесь на цвета в макетах с помощью @color/royal_blue .
  • Не прописывайте размеры полей/отступов в макете. Вместо жесткого кодирования этих значений обязательно переместите все значения измерений в файл res/values/dimens.xml и ссылайтесь на них в макетах с помощью @dimen/item_padding_left .
  • Для поддержки нескольких устройств мы можем использовать альтернативную систему ресурсов для предоставления различных цветов, строк, размеров, стилей и т. д. в зависимости от типа устройства, размера экрана, версии API и многого другого.

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

Организация ресурсов в подпапки

Часто возникают вопросы по поводу организации не только исходных файлов, но и лучшей организации ресурсов приложения. В современном приложении часто существуют сотни различных файлов макетов, рисунков, стилей и т. д., и по умолчанию все они сгруппированы в плоский список в одном подкаталоге (например, res/layout). На данный момент храните файлы ресурсов макета в том же каталоге.

См. публикацию stackoverflow для обсуждения рассмотренных вариантов. Основная проблема заключается в том, что если вы попытаетесь использовать подход с размещением вложенных ресурсов, текущая логика для подключаемого модуля Android Studio Gradle не будет обновлять файлы ресурсов после того, как они были изменены для вложенных наборов ресурсов. Текущая реализация пытается проверить каталоги ресурсов с помощью startWith(), поэтому вложенная структура каталогов (т. е. src/main/res/layout/layouts и src/main/res/layout/layouts_category2) выберет src/main/res /layout/layouts последовательно и никогда не обновляйте изменения. В результате вам придется перестраивать/очищать проект каждый раз, когда вносите изменения в файл макета.

Заключение

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

Однако в общем программировании на Java упаковка приложений по функциям считается предпочтительной и имеет большой смысл.

Папка src содержит две самые важные папки в любом проекте Android, а именно androidTest и main. Пакет androidTest создан для хранения тестовых случаев для тестирования кода приложения и запуска. Эта папка содержит . файлы Java (JAVA).

Что содержит папка проекта Android?

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

Где хранятся проекты Android?

Хранилище проекта Android. Android Studio по умолчанию хранит проекты в домашней папке пользователя в AndroidStudioProjects. Основной каталог содержит файлы конфигурации для Android Studio и файлы сборки Gradle. Файлы, относящиеся к приложению, содержатся в папке приложения.

В каком каталоге хранится активность Java?

src — исходные файлы Java, связанные с вашим проектом. Сюда входят файлы «контроллера» Activity, а также ваши модели и помощники. res — файлы ресурсов, связанные с вашим проектом. Вся графика, строки, макеты и другие файлы ресурсов хранятся в иерархии файлов ресурсов в каталоге res.

В какой папке находится исходный код приложения Android?

папка src/, содержащая исходный код Java для приложения. lib/ папка, в которой хранятся дополнительные файлы jar, необходимые во время выполнения, если таковые имеются. assets/ папка, в которой хранятся другие статические файлы, которые вы хотите упаковать с приложением для развертывания на устройстве. Папка gen/ содержит исходный код, генерируемый инструментами сборки Android.

Что важно в каждом проекте Android?

Что важно в каждом проекте Android?

  • Манифест Android. XML.
  • строить. XML.
  • бин/
  • источник/
  • рез/
  • активы/

Что такое важные файлы в Android?

xml: каждый проект в Android включает файл манифеста, который называется AndroidManifest. xml, хранящийся в корневом каталоге его иерархии проектов. Файл манифеста — важная часть нашего приложения, поскольку он определяет структуру и метаданные нашего приложения, его компонентов и требований.

Что такое модули в проекте?

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

Что такое модуль Android?

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

Сколько файлов будет включено в одно действие Android?

Но вы должны определить его по умолчанию по CATEGORY_DEFAULT. Без основного действия по умолчанию, если у вас есть два действия, Android Market не знает, какое действие начать.

Как получить доступ к файлам на Android?

На телефоне файлы обычно можно найти в приложении "Файлы" . Если вы не можете найти приложение «Файлы», возможно, у производителя вашего устройства есть другое приложение.

Найти и открыть файлы

Вы новичок в разработке приложений для Android? После того, как вы установили Android Studio, предпочтительную интегрированную среду разработки Google (IDE), и запустили свое первое приложение, ознакомьтесь со структурой проекта Android. В этой статье представлен очень краткий обзор созданных каталогов и файлов.

При запущенной Android Studio и открытом проекте используйте проводник Project для просмотра всех папок и файлов. (В стандартной конфигурации Studio откройте проводник проекта, щелкнув вкладку Проект в левой части.) Проводник проекта поддерживает различные представления с помощью раскрывающегося списка на вкладке. Выбрав Файлы проекта в проводнике проектов, вы получите представление всего. Обратите внимание, как он отражает структуру проекта, хранящуюся в файловой системе:

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

Если файл добавлен в каталоги вне студии, он появится в структуре проекта в студии. Аналогичным образом удаление файла из проекта в Studio удалит его из файловой системы (обратите внимание, что он не появится в Корзине в Windows).

Просматривайте проект, чтобы увидеть, где находятся различные файлы. В подпапках находятся файлы исходного кода и файлы ресурсов (например, макеты и изображения). Есть папки и файлы для системы сборки (Gradle), а также файлы конфигурации и настроек IDE (Android Studio основана на IntelliJ IDE).

Папка первого уровня

В структуре проекта папка самого высокого уровня называется именем проекта, как в приведенном выше примере HelloWorld. В этой папке проекта первого уровня есть несколько (четыре) папок по умолчанию и несколько файлов конфигурации для Gradle (инструмент сборки), Git (инструмент управления версиями) и IDE (на основе IntelliJ).

  • .gradle — кеш и информационный каталог Gradle (хранит версию Gradle, используемую для проекта).
  • .idea — хранит настройки Android Studio (IntelliJ) для проекта.
  • приложение — важная папка, в которой находится код нашего приложения.
  • gradle — оболочка сборки Gradle для проекта.

Важная папка с исходным кодом

Все основные файлы и папки проекта, связанные с Android, находятся (по умолчанию) в папке приложения. В папке app находятся еще несколько (три) файлов конфигурации Gradle и Git. Есть три папки второго уровня:

  • build – создание выходных данных.
  • libs — для дополнительных библиотек.
  • src – важная папка с исходным кодом.

Папка src содержит три папки:

  • androidTest — для модульных тестов приложения.
  • main — для кода приложения и ресурсов.
  • test — модульные тесты класса.

Папка main в src — это место, куда помещаются все элементы, из которых состоит приложение. Здесь хранятся и систематизируются исходный код, дизайн экрана, изображения и другие медиафайлы, строки и определения.Имена папок, в которых хранятся различные файлы, важны, поскольку структура папок используется для ссылки на файлы.

  • java — содержит исходный код в папках, названных в честь пакетов, которым принадлежат классы Java.
  • res – содержит все типы ресурсов, используемых приложением.

При необходимости папку приложения можно переименовать (рефакторинг). Как это сделано в некоторых примерах SDK.

Дневной обзор

Чтобы упростить представление для повседневной разработки, выберите параметр Android в раскрывающемся списке Проект. Это позволяет вам сосредоточиться на коде и ресурсах приложения. В представлении Android по умолчанию отображаются только папки java и res (для проекта Java), файлы манифеста и сценарии сборки для приложения.< /p>

Аналогичным образом используйте представление Тесты, чтобы сконцентрироваться на тестовом коде, если вы пишете автоматизированные тесты для своего приложения.

Файлы исходного кода приложения Android

Код приложения Java для Android хранится в файлах классов Java. Классы Java сгруппированы в пакеты. Каждый класс хранится в файле .java в папке, названной в честь пакета. Имя пакета обычно содержит обратный URL-адрес в качестве пространства имен, обычно основанного на веб-адресе организации, личной веб-странице или блоге человека. Одно и то же пространство имен используется для уникальной идентификации приложения в магазинах приложений и ОС Android. Например, приложение Hello World от Tek Eye может использовать uk.tekeye.helloworld в качестве пространства имен.

В папке res хранятся все отдельные ресурсы для приложения, в том числе:

  • drawable — изображения и элементы экрана (могут поддерживаться разные размеры экрана, например drawable-hdpi).
  • макет – храните определения экрана и фрагмента (для книжной или альбомной ориентации создайте папки layout-port или layout-land).< /li>
  • mipmap — значки панели запуска для поддержки различной плотности экрана.
  • значения – определения строк и констант (например, цветов).

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

Ресурс часто используемых строк

Одними из наиболее часто используемых файлов ресурсов являются те, в которых хранятся строковые значения. Почти все строки в приложении хранятся как ресурс string в файлах ресурсов XML. Исходный файл строки по умолчанию называется strings.xml в папке values. В отличие от некоторых ресурсов, например. layouts, для строк имя файла не имеет значения. Может быть много файлов XML, хранящих строковые значения. Это помогает в организации крупных проектов, например. screen_1_strs.xml, screen_2_strs.xml и т. д. Дополнительную информацию об именовании ресурсов см. на страницах обзора типов ресурсов на сайте Android Developers.

Gradle, конструктор проектов приложений

  • build.gradle — файл сборки для каждого модуля и всего проекта
  • settings.gradle — настройки проекта
  • gradle.properties — свойства проекта
  • local.properties — автоматически генерируемые локальные параметры конфигурации
  • proguard-rules.pro — правила ProGuard для приложения (измените, если используете WebView с JavaScript)
  • gradlew и gradlew.bat — сценарии Unix и Windows для запуска Gradle (обеспечивает доступность правильной версии Gradle, используемой в проекте)

Разные файлы

  • .gitignore — папки и файлы, которые не должны храниться в репозиториях Git

Все вышеперечисленное относится к базовому приложению и установке Studio по умолчанию. Как и в большинстве современных IDE, многие параметры можно изменить, а структуру можно изменить в соответствии с требованиями организации. Однако использование настроек по умолчанию обычно приводит к меньшему количеству проблем в долгосрочной перспективе, особенно с учетом того, что Android Studio имеет тенденцию изменять настройки по мере выпуска новых версий.

См. также

Эта статья предназначена для предоставления краткого руководства по структуре проекта Android в Android Studio. На веб-страницах Android Developers Studio и в справке IntelliJ доступно гораздо больше информации. Не забудьте попробовать примеры приложений, поставляемые с Android Software Development Kit (SDK), чтобы увидеть, как организованы их файлы. Наслаждайтесь программированием для Android.

  • Не забывайте о многочисленных ресурсах на веб-сайте Google для разработчиков Android.
  • См. список всех статей об Android на этом веб-сайте в указателе сайта.

Автор: Дэниел С.Фаулер Опубликовано: 28 февраля 2016 г. Обновлено: 15 ноября 2020 г.

У вас есть вопрос или комментарий по поводу этой статьи?

(В качестве альтернативы используйте адрес электронной почты, указанный в нижней части веб-страницы.)

↓markdown↓ CMS быстрая и простая. Быстро создавайте веб-сайты и легко публикуйте их. От новичка до эксперта.

Читайте также: