Зачем использовать новый плагин Android для плагина библиотеки?

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

То, что я не понимаю, это то, что этот плагин на самом деле делает лучше/иначе, чем обычный плагин android-library. Я спрашиваю, потому что моя команда законно рассматривает возможность разделения нашего кода на функциональные модули по причинам, которые не имеют ничего общего с Android-приложениями Android, и я не понимаю, что польза от использования плагина com.android.feature.

Ответ 1

Обновление (по состоянию на май 2019 года): для тех, кто спотыкается на этом посте, приведенные ниже сведения в настоящее время в значительной степени устарели. Плагин функций (com.android.feature) больше не является "новым" и фактически устарел в пользу комплектов приложений с мгновенной поддержкой. Подробнее об этом читайте в официальном сообщении в блоге.

Новый функциональный плагин (com.android.feature) практически идентичен существующему библиотечному плагину (com.android.library) по своему поведению и способам использования.

Ключевое отличие состоит в том, что плагин библиотеки всегда будет выводить файл архива Android (AAR), где плагин возможностей может выводить файл AAR когда сборка предназначена для обычного приложения Android (через плагин com.android.application) и файла APK для этого модуля, когда сборка нацелена на мгновенное приложение (через плагин com.android.instantapp).

Каковы преимущества прямо сейчас? В настоящее время вам нужно использовать только плагин для сборки Google Play Instant (ранее называвшегося Android Instant Apps). Использование плагина функций в настоящее время имеет минимальные преимущества, если вы НЕ планируете создавать Google Play Instant. Одно небольшое преимущество может заключаться в том, что вы можете выводить APKs для каждого модуля вашего приложения и можете устанавливать и тестировать их независимо.