如何在单个项目中创建多个即时应用程序?

How to create multiple instant apps in single project?

在阅读文档并观看有关免安装应用程序的官方 Google 教程后,我发现它需要至少一个功能模块,"minimal module"(具有共享代码的模块)和一个完整的应用程序模块。官方手册解释了如何在一个工作区中创建这些模块,旨在用于单个应用程序。

但是,在我们的例子中,我们在单个 Android Studio 项目中有很多不同的应用程序。

我可以创建一些带有支持库和一些共享代码的公共模块("minimal module" 根据官方命名,据我所知)。实际上,这种共享代码确实很少,从技术上讲,唯一具有相当大尺寸的通用代码库将是支持库(即时应用程序不会共享除启动器图标之外的任何通用资源)。

是否可以配置 gradle 为该项目中的每个应用程序生成免安装应用程序?

这应该不是问题。当即时应用程序指南引用模块时,我们在这里讨论 "feature modules",而不是项目中的任何 Gradle 模块。您描述为共享代码的内容听起来更像是一个普通的库模块。

对于每个免安装应用程序,您至少需要 2 个 Gradle 模块。一个是应用功能 Gradle 插件的功能模块。这将构建发送给用户的功能 APK,您可以包含您需要的任何库,它们将成为最终 APK 的一部分,就像普通应用一样。

第二个模块是免安装应用模块,应用免安装应用 Gradle 插件。这个仅依赖于该功能模块,并构建功能 APK 的 ZIP 存档(在您的情况下,只有一个功能模块,只有 1 个)

当然,如果您不想为所有应用重复创建这些模块,您可以自由使用风格来构建所有即时应用。

听起来你不需要这个,但如果你想将你的应用分成多个功能模块,主要是为了减少总下载大小,那么你需要在 "base feature" 模块,它就像一个免安装应用程序库,但仍然构建一个单独的 APK。