Структура Android проекта – альтернативный путь

в 9:43, , рубрики: android, android development, android project structure, Разработка под android

Предлагаю вашему вниманию перевод статьи «Android Project Structure — alternative way». Поблагодарить автора оригинальной статьи можно тут.

Intro

Все мы знаем, как выглядит структура Android проекта – поместить все изображения в этот каталог, все файлы разметки в тот каталог. Но… во время разработки проекта количество файлов растет очень быстро и становится трудно ориентироваться и переходить к нужному файлу.

Структура Android проекта – альтернативный путь - 1Структура типичного Android проекта

Каталог ресурсов для экрана

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

Структура Android проекта – альтернативный путь - 2Структура — каталог ресурсов для каждого экрана

Как вы можете видеть на скрине сверху, мы имеем два корневых каталога внутри каталога main:

  • res-main содержит все общие ресурсы, которые используются на более, чем одном экране.
  • res-screen содержит каталоги ресурсов для каждого экрана, например, about, chat, event details, event list, home, login

Давайте заглянем внутрь папки ресурсов для экрана chat.

Структура Android проекта – альтернативный путь - 3

Сам чат состоит из нескольких xml layouts файлов, поэтому мы создали каталог chat layout и поместили туда эти файлы. Также имеется множество .png изображений, которые используются только на экране чата, поэтому мы поместили все эти изображения в подкаталоги drawable-hdpi, drawable-xhdpi, drawable-xxhdpi и drawable-xxxhdpi каталога chat.

Когда настанет время реализовать альбомную ориентацию или версию чата для планшета, мы создадим каталоги layout-land и layout-sw720dp внутри каталога ресурсов для экрана chat.

Как объявить каталог ресурсов для экрана?

Откройте файл app.gradle и объявите sourceSets внутри секции android. Более подробно об объединении ресурсов написано тут.

sourceSets {
    main {
        res.srcDirs = [
                'src/main/res-main',
                'src/main/res-screen/about',
                'src/main/res-screen/chat',
                'src/main/res-screen/event-detail',
                'src/main/res-screen/event-list',
                'src/main/res-screen/home',
                'src/main/res-screen/login',
        ]
    }
}

Примечание: это работает только в режиме просмотра Project.

Заключение

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

Автор: qwert2603

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js