Подтвердить что ты не робот

(Dis-) Преимущество наличия нескольких модулей в проекте Android Studio?

Желательно ли иметь несколько модулей в проекте Android Studio над наличием только одного большого приложения-модуля?

Я знаю о Android-модулях в целом и преимуществах SOLID, поэтому мой фокус особенно учитывая производительность сборки. Поскольку gradle может выполнять инкрементные сборки, и если изменяется только один модуль, эти другие модули не нуждаются в обработке?

Является ли это заметным или существует даже значительное количество накладных расходов?

4b9b3361

Ответ 1

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

  1. Если вы обнаружите, что время компиляции занимает больше времени, вы можете отключить модуль от gradle, над которым вы временно не работаете, и скомпилировать его быстрее.
  2. Модуль помогает нам разделить проект на отдельные функциональные блоки. Вы можете создать один модуль данных, который содержит все чистые Java-бины и может использоваться несколькими приложениями, если вы находитесь в одном домене. Например. Финансовый домен может иметь два приложения: одно для просмотра полисов для клиента, а другое - для страхового агента для просмотра одних и тех же данных. Но модуль данных может быть общим для всех приложений, и даже модуль данных можно позаимствовать у сервера или команды API. Модуль данных может тестироваться индивидуально, без каких-либо зависимостей от Android, и любой, кто знает о java, может написать контрольные примеры.
  3. Каждый модуль может быть независимо собран, протестирован и отлажен.
  4. Дополнительные модули часто полезны при создании библиотек кода в вашем собственном проекте или когда вы хотите создать разные наборы кода и ресурсов для разных типов устройств, таких как телефоны и носимые устройства, но сохраняйте все файлы в рамках одного проекта и совместно используйте некоторый код,
  5. Кроме того, модуль приложения для Android и модуль библиотеки отличаются.
  6. Вы можете сохранить две разные версии модуля на основе выпусков API от ASOP.

Вы можете посмотреть больше на ресурс Android разработчика

Как модульность может ускорить время создания приложений Android

Модульность приложения и ленивая загрузка модуля в Instagram и за его пределами

Модуляризация приложений Android от Mauin

Ответ 2

Вчера на Medium была статья, которая точно отвечает на мой вопрос:

https://medium.com/@nikita.kozlov/how-modularisation-affects-build-time-of-an-android-application-43a984ce9968#.at4n9imbe

ТЛ; др:

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

Во-вторых, если расщепление выполняется неправильно, то время сборки будет резко увеличено, потому что Gradle собирает как релизную, так и отладочную версию библиотечных модулей.

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

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

Ниже вы можете найти результаты всех экспериментов, описанных в этой статье

Обновить

Адресовано на Google I/O '17: https://youtu.be/Hx_rwS1NTiI?t=23m17s