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

时间:2019-01-13 18:33:47

标签: android android-gradle android-instant-apps

阅读文档并观看有关即时应用程序的Google官方教程后,我发现它至少必须具有一个功能模块,“最小模块”(带有共享代码的模块)和完整的应用程序模块。官方手册说明了如何在旨在用于单个应用程序的工作空间中创建这些模块。

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

我可以使用支持库和一些共享代码创建一些通用模块(根据我的理解,根据官方命名为“最小模块”)。实际上,此共享代码实际上是最少的,并且从技术上讲,唯一的一个相当大的通用代码库就是支持库(即时应用程序不会共享启动器图标以外的任何通用资源)。

是否可以配置gradle为该项目中的每个应用生成即时应用?

1 个答案:

答案 0 :(得分:2)

这应该不是问题。当即时应用指南指的是模块时,我们在这里讨论“功能模块”,而不是项目中的任何Gradle模块。您所描述的共享代码听起来更像是普通的库模块。

对于每个即时应用程序,您至少需要2个Gradle模块。一种是应用功能Gradle插件的功能模块。该库将构建功能库APK,该库将交付给用户,您可以包括所需的任何库,它们将成为最终APK的一部分,就像普通应用一样。

第二个模块将是即时应用模块,应用即时应用Gradle插件。这仅取决于该功能模块,并为您的功能APK建立一个ZIP存档(在您的情况下,只有一个功能模块,只有1个)

当然,如果您不想为所有应用程序重复创建这些模块,则可以随意使用口味来构建所有即时应用程序。

这听起来好像不是您需要的,但是如果您想将您的应用拆分为多个功能模块,主要是为了减少总下载量,那么您将需要在“基本功能”的顶部构建这些功能模块”模块,其作用类似于即时应用程序的库,但仍会构建单独的APK。