在 Android Studio 3 中至少有两种新的模块类型。第一个是Instant app module
,第二个是feature module
。这Instant App module
很明显,但从feature module
我的角度来看,它与library module
. library
那么和feature
模块之间的真正区别是什么,我应该何时使用library module
以及何时使用feature module
?
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
这一切都适用于即时应用程序,因此只有在您的应用程序支持即时应用程序功能时才需要它
见https://developer.android.com/topic/instant-apps/getting-started/structure.html#basic-app
Android SDK 是允许您为 Android 平台创建应用程序的核心功能和软件工具。SDK 包含许多用于开发应用程序的库和工具。
库 是预先构建的编译代码的集合,您可以使用它来扩展应用程序的功能。例如,您可能需要在应用程序中显示一些图形。您可以选择使用其他人开发的预构建库,而不是从头开始创建它,这将为您提供所需的功能,从而节省您一些时间。
模块 是应用程序的一小部分,可以自行测试和调试,而不需要整个应用程序。这对于任何编程语言都是一样的。假设您正在构建一个具有登录功能的应用程序。要测试登录功能是否有效,您不需要整个应用程序。因此,登录部分是您的应用程序的一个模块。
app 模块构建一个应用程序。一个库模块构建一个库。
应用程序是用户使用的东西。应用程序模块的输出是一个 APK,即 Android 应用程序的包。
库是代码的集合,代表您想要在多个应用程序中使用的东西,或者想要保存在与应用程序代码的其余部分不同的“容器”中。库模块的输出是一个 AAR 和 Jar。
将功能用于您的免安装应用的链接功能(通过深度链接启动它)。
在您的应用程序或功能模块中使用库来获得代码依赖性。