Отличие Android Studio 3 между библиотечным модулем и функциональным модулем

В Android Studio 3 есть как минимум два новых типа модулей. Первый Instant app module, а второй feature module. С Instant App module это совершенно очевидно, но feature module с моей точки зрения такое же, как library module. Так в чем реальная разница между модулями library и feature и когда я должен использовать library module и когда feature module?


person Stepango    schedule 30.06.2017    source источник


Ответы (5)


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

Следовательно, модули библиотеки не будут упакованы в Instant APP APK.

введите описание изображения здесь

person gbaccetta    schedule 30.06.2017
comment
И Lib D также должна быть доступна для Feature 1 и Feature 2. - person Zon; 19.03.2018

Функциональный модуль — это модуль, который применяет подключаемый модуль com.android.feature.

Этот тип модуля имеет двойную природу:

  • При использовании приложением (com.android.application) во время сборки оно создает aar и работает так же, как библиотека.

  • При использовании APK приложения с мгновенным запуском (com.android.instantapp) создается APK приложения с мгновенным запуском. Разработчики должны создавать функциональные модули точно так же, как библиотечные модули. Предоставленные инструменты отвечают за применение правильного характера при использовании во время сборки.

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

Основной источник: https://codelabs.developers.google.com/codelabs/android-instant-apps/#3

person pRaNaY    schedule 17.07.2017

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

введите здесь описание изображения

См. https://developer.android.com/topic/instant-apps/getting-started/structure.html#basic-app

person Marcin Orlowski    schedule 30.06.2017
comment
Означает ли это, что я не могу использовать библиотечные модули для мгновенных приложений? - person Stepango; 30.06.2017

Android SDK – это основные функции и программные инструменты, позволяющие создавать приложения для платформы Android. SDK содержит множество библиотек и инструментов, которые вы будете использовать для разработки своего приложения.

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

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

модуль приложения создает приложение. Библиотечный модуль создает библиотеку.

Приложение — это то, чем пользуется пользователь. Выход модуля приложения — это APK, пакет приложения для Android.

Библиотека – это набор кода, который представляет собой что-то, что вы хотите использовать в нескольких приложениях или иным образом хотите хранить в отдельном "контейнере" от остального кода приложения. Выход библиотечного модуля — это AAR And Jar.

person Jigar Patel    schedule 30.06.2017
comment
Вопрос о различиях между библиотечным модулем и функциональным модулем в Android Studio, а не о разнице между библиотекой и модулем. - person Stepango; 30.06.2017

Используйте Feature для связанной функции вашего приложения с мгновенным запуском (чтобы запустить его с помощью deeplink).

Используйте Library для зависимости кода в вашем приложении или в ваших модулях Feature.

person kirussell    schedule 30.06.2017