11

在 Android Studio 3 中至少有两种新的模块类型。第一个是Instant app module,第二个是feature module。这Instant App module很明显,但从feature module我的角度来看,它与library module. library那么和feature模块之间的真正区别是什么,我应该何时使用library module以及何时使用feature module

4

5 回答 5

10

我会像这样完成 Marcin Orlowski 计划。您可以以与给定功能或基本模块的依赖项相同的方式来描绘库模块。

因此库模块不会被打包在 Instant APP APK 中。

在此处输入图像描述

于 2017-06-30T13:40:13.970 回答
5

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

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

  • 当应用程序(com.android.application)在构建期间使用它时,它会产生一个 aar 并且就像一个库一样工作

  • 当被 Instant App APK (com.android.instantapp)使用时,它会生成一个 Instant App APK 开发人员应该像编写库模块一样编写功能模块。提供的工具负责在构建期间使用时应用正确的性质。

在最简单的情况下,Instant 应用可以有一个功能模块。如果有多个特性模块,这些特性到特性的依赖关系可以通过 api 配置来定义。在任何情况下,都必须只有一个带有 baseFeature 属性的基本特征。

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

于 2017-07-17T10:58:24.687 回答
4

这一切都适用于即时应用程序,因此只有在您的应用程序支持即时应用程序功能时才需要它

在此处输入图像描述

https://developer.android.com/topic/instant-apps/getting-started/structure.html#basic-app

于 2017-06-30T03:31:22.170 回答
2

Android SDK 是允许您为 Android 平台创建应用程序的核心功能和软件工具。SDK 包含许多用于开发应用程序的库和工具。

是预先构建的编译代码的集合,您可以使用它来扩展应用程序的功能。例如,您可能需要在应用程序中显示一些图形。您可以选择使用其他人开发的预构建库,而不是从头开始创建它,这将为您提供所需的功能,从而节省您一些时间。

模块 是应用程序的一小部分,可以自行测试和调试,而不需要整个应用程序。这对于任何编程语言都是一样的。假设您正在构建一个具有登录功能的应用程序。要测试登录功能是否有效,您不需要整个应用程序。因此,登录部分是您的应用程序的一个模块。

app 模块构建一个应用程序。一个库模块构建一个库。

应用程序是用户使用的东西。应用程序模块的输出是一个 APK,即 Android 应用程序的包。

是代码的集合,代表您想要在多个应用程序中使用的东西,或者想要保存在与应用程序代码的其余部分不同的“容器”中。库模块的输出是一个 AAR 和 Jar。

于 2017-06-30T03:38:55.930 回答
1

功能用于您的免安装应用的链接功能(通过深度链接启动它)。

在您的应用程序或功能模块中使用库来获得代码依赖性。

于 2017-06-30T03:47:03.267 回答