为什么在库插件上使用新的 Android 功能插件?

Why use the new Android feature plugin over the library plugin?

Android 最近推出了一个新的 com.android.feature 插件,用于将应用程序拆分为新的 Instant 应用程序的功能。这似乎是他们普遍推荐的架构,而不仅仅是针对您为即时应用程序拆分的功能。您可以阅读它的用法 here.

我没能理解的是这个插件实际上比普通的 android-library 插件做得更好/不同。我问,因为我的团队正在合理地考虑将我们的代码拆分为功能模块,原因与 Android 即时应用程序无关,而且我不明白使用 com.android.feature 有什么好处插件是。

更新(截至 2019 年 5 月):对于遇到此问题的任何人 post,以下详细信息现在基本上已过时.功能插件 (com.android.feature) 不再是 "new",实际上现在已被弃用,取而代之的是启用即时应用程序包。在官方 blog post.

中阅读更多相关信息

新功能插件 (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,并且可以独立安装和测试它们。