Android Studio 3中库模块和特性模块的区别

11

在 Android Studio 3 中,至少有两种新的模块类型。第一种是 Instant App 模块,第二种是 feature 模块。关于 Instant App 模块 很明显,但从我的角度来看,feature 模块library 模块 是相同的。那么,library 模块feature 模块 的真正区别是什么?我应该在何时使用 library 模块,何时使用 feature 模块

5个回答

11

我会像这样完成Marcin Orlowski方案。

你可以将图片库模块看作给定功能或基本模块的依赖项,因此图书馆模块不会包含在Instant APP APK中。

输入图像描述


2
Lib D 应该对 Feature 1 和 Feature 2 都可用。 - Zon

7

一个功能模块是应用了 com.android.feature 插件的模块。

这种模块类型具有双重性质:

  • 在构建期间被应用程序(com.android.application)使用时,它生成一个 aar 并像库一样工作。

  • 在即时应用 APK(com.android.instantapp) 中使用时,它生成一个即时应用 APK。开发人员应该像编写库模块一样编写功能模块。在构建时,提供的工具会自动应用正确的属性。

在最简单的情况下,即时应用只能有一个功能模块。 如果存在多个功能模块,则可以通过 api 配置定义这些功能与功能之间的依赖关系。在任何 情况下,必须只有一个标记有 baseFeature 属性的基础功能。

主要来源: https://codelabs.developers.google.com/codelabs/android-instant-apps/#3


4

这是否意味着我不能在即时应用程序中使用库模块? - Stepango

3
Android SDK是一组核心功能和软件工具,可让您为Android平台创建应用程序。SDK包含许多库和工具,您将使用这些库和工具来开发应用程序。
库是一组预编译代码,您可以使用它来扩展应用程序的功能。例如,您可能需要在应用程序中显示一些图形。与其从头开始创建,您可以选择使用其他人开发的预构建库,以获得所需的功能,从而节省时间。
模块是应用程序的一小部分,可以单独测试和调试,而不需要整个应用程序。这对于任何编程语言都是相同的。假设您正在构建带有登录功能的应用程序。要测试登录功能是否有效,您不需要整个应用程序。因此,登录部分是应用程序的一个模块。
应用程序模块构建应用程序。库模块构建库。
应用程序是用户使用的内容。应用程序模块的输出是APK,即Android应用程序的包。
库是表示您想在多个应用程序中使用或以其他方式保留在单独的“容器”中的代码集合。库模块的输出是AAR和Jar。

这个问题是关于Android Studio中库模块和特性模块之间的区别,而不是关于库和模块之间的区别。 - Stepango

1
使用功能来链接您的即时应用程序的功能(通过深度链接启动它)。
在您的应用程序或您的功能模块中使用来进行代码依赖。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接