#java #android #android_studio #gradle #modules
Например, приложение делится на три модуля: Core, Personal, Client; В Core определены основные библиотеки и методы которые будут переиспользовать остальные модули. Personal и Client - это модули со своим набором activity и бизнес логикой. При авторизации пользователя выбирается, какой модуль использовать. Подскажите, как разрешить зависимости между модулями, а так же каким образом может происходить выбор модуля в зависимости от триггера у пользователя?
Ответы
Ответ 1
Создание модуля (библиотеки) Для создания модуля в Android Studio выбираете File > New > New Module Далее есть 2 варианта. Если вы планируете создать «чистую» java-библиотеку, в качестве типа указывайте Java Library, в итоге код такой библиотеки скомпилируется в JAR файл. Это удобно, так как вы сможете использовать ее не только в Android приложениях. Если же вы собираетесь использовать android-специфичные вещи и вам понадобятся классы из пакетов android.*, то создавайте Android Library, которая при компиляции собирается в AAR файл. В данном случае вам понядобится последний вариант. ВАЖНО: В minSDKVersion (файлы build.gradle модулей) приложения должен совпадать или быть больше, чем указанный в модуле библиотеки.Указанные buildToolsVersion должны быть установлены в Android-SDK. Каждый модуль библиотеки генерирует свой класс ресурсов (*.R.class). Когда Android библиотеки добавляются в проект и происходит его сборка, то их ресурсы сливаются, что может привести к конфликтам. Поэтому в документации определены следующие соглашения: Если ID ресурса приложения совпадает с ID ресурса в библиотеке, то используется ресурс приложения Если ID ресурса совпадает в разных библиотеках, то используется ресурс библиотеки, которая указана первой в списке зависимостей (находится выше в блоке dependecies) Для избежания описанных выше конфликтов рекомендуется использовать префикс или другую последовательную схему именования ресурсов, которая будет уникальна для каждого из модулей (или уникальна для всего приложения вцелом) Подключение Android библиотеки Подключаются Android библиотеки как зависимости (если библиотека была создана как отдельный проект в AndroidStudio). Тут есть так же 2 варианта: 1.Либо добавить скомпилированный AAR (или JAR) файл: - File > New Module - Import .JAR/.AAR Package > Next - вводите путь до ARR (или JAR) файла > Finish 2.Либо импортировать библиотеку из исходников: - File > New > Import Module - вводите путь до директории, в которой находятся исходники библиотеки > Finish ВАЖНО: убедиться, что имя Android библиотеки было добавлено в settings.gradle include ':app', ':core', ':personal', ':client' и появилась в блоке dependencies файла build.gradle приложения dependencies { compile project(":core") compile project(":personal") compile project(":client") } Android библиотеки могут содержать в себе ресурсы, другие JAR библиотеки, собственный AndroidManifest.xml. Структура скомпилированной Android библиотеки Скомпилированная Android библиотека представляет собой обычный zip архив с расширением .arr, который содержит следующие обязательные файлы и директории: /AndroidManifest.xml /classes.jar /res/ /R.txt и необязательные: /assets/ /libs/name.jar /jni/abi_name/name.so (где abi_name один из поддерживаемых Android ABIs) /proguard.txt /lint.jar
Комментариев нет:
Отправить комментарий