Android 库模块与功能模块

Android Library Module vs Feature Module

AndroidStudio 3.0 的最新更新允许创建多种模块类型。其中一种新类型是 'Feature Module',但我找不到有关它的详细信息

现有的 Android 库模块和功能模块有什么区别,为什么要使用后者?

我能看到的唯一区别是功能模块在清单中定义了应用程序。 Can/should 这些功能可以用作独立应用程序吗?在那种情况下,它们与实际应用程序模块有何不同?

功能模块用于免安装应用和 Android App Bundle,因此当应用在使用免安装应用或 App Bundle 时请求功能时,Play 商店仅加载请求的功能模块代码,而不加载其他功能模块代码。对于即时应用程序,一旦用户使用完该功能,代码就会被丢弃。如果您正在开发常规应用程序而不是即时应用程序,我认为您应该使用 Android 库模块。

Android App Bundle 将用于将您的应用程序分成小块,这样用户就不必在不需要时下载您 APK 中的所有代码。

也许是一个小更新版本...

例如,

Android Library 是您在应用程序中需要但也可能在其他应用程序中使用的功能。这基本上是您应用程序的固定部分。

动态功能模块(或即时应用程序的即时动态功能模块)可用于临时或基于功能的应用程序。 假设您有一个需要 80MB 库扫描模块的入职流程。因此,当用户进入入职时,将请求并安装该模块。一旦用户完成您的入职流程,就不再需要扫描模块,因此您可以再次从您的应用中删除该模块。

另一个示例:您创建了一个具有基于订阅的功能的应用程序。由于用户为您的订阅付费。8 个模块(功能)中的 3 个现在可供用户访问,并且 feature/module 正在用户设备上安装。

因此,总而言之,使用动态功能来减小您的应用程序大小可能是明智的,甚至是必要的(达到最大 APK 大小)。

另见: