模块、库、JAR、库项目、Gradle 项目、AAR 和 JAR 的区别

9

我在一家公司工作,该公司有一个由离岸团队开发的安卓移动应用程序。我可以访问GitHub代码库。

我正在逐步拼凑安卓应用程序,但这让我很头疼。

如何区分模块,库,jar,库项目,gradle项目,aar和jar。有人能否给我一个实际的定义。请不要从谷歌搜索结果中直接复制过来,我也会使用谷歌。

附注:是的,我是新手,但并不为此感到骄傲。

2个回答

11

这里我简要介绍一下它们的含义,希望能够清楚明白。

模块(Module):是您应用程序的组件,可以独立构建/测试,并在需要时在另一个应用程序中重复使用。

库(Libraries):AAR文件、JAR文件等。

JAR:Java库。

AAR:类似于JAR文件,唯一的区别是它还包含安卓特定的文件,如资源等。

Gradle项目(Gradle Project):Gradle只是一个构建系统,Android Studio用它来构建Android项目。与早期Eclipse使用的构建系统相比,它非常强大。

库项目(Library Project):Android库项目与Android应用程序项目相似,因为它也包括在项目根目录中的项目清单文件。此外,该目录包含src、res和其他目录,这些目录在构建应用程序项目时也会出现。 然而,有一个重要的区别。您不能将库项目编译成APK文件,因为库项目不描述应用程序。相反,它提供可重用的代码和资源,当应用程序的项目和源代码引用库项目时,这些资源和代码将合并到应用程序的APK文件中。

为了进一步解释这个问题,让我给你举一个例子: 假设您想使用网络库volley来进行API调用,既然这是谷歌的开源库,您可以克隆它并根据自己的需要进行自定义设置。

您可以将volley库作为您的库项目(Library Project),独立构建、单元测试等。

现在假设您开始构建一个应用程序,在其中需要进行HTTP调用,因此您需要将volley库添加到您的项目中。您有两个选择:

  1. 编译您的库项目volley,生成aar文件,并将其添加到您的应用程序项目中。

  2. 将Volley作为模块添加到您的项目中。(如果您选择此选项,则可以在同一工作室项目中更改volley库,因为它将作为您项目中的一个组件)

请告诉我如果有什么不清楚的地方。

1
使用库文件 .aar 或模块,在性能或反向工程方面有什么区别吗? - Srinivasan
1
非常感谢,我知道已经晚了四年,但现在这更加有意义。 - Ackman

10

1.) 模块

模块是一组源文件和构建设置,允许您将项目划分为离散的功能单元。您的项目可以有一个或多个模块,并且一个模块可以使用另一个模块作为依赖项。每个模块可以独立构建、测试和调试。

Android Studio中有4种类型模块

  • 电话和平板电脑模块
  • Android Wear模块
  • Android TV模块
  • Glass模块

2.) 支持库

Android支持库提供了一些未内置到框架中的功能。这些库提供新功能的向后兼容版本,提供有用的UI元素,这些元素未包含在框架中,并提供应用程序可以利用的各种实用程序。

支持库提供不同的功能

3.) Jar文件

JarFile用于从jar文件中读取条目及其关联数据。

更多细节请访问:https://developer.android.com/reference/java/util/jar/JarFile.html

4.) Android库项目

Android团队引入了一种名为Android ARchive(AAR)新的二进制分发格式。 .aar包是Android库项目的二进制分发。

AAR类似于JAR文件,但它可以包含资源以及已编译的字节码。这允许将AAR文件包含在Android应用程序的构建过程中,类似于JAR文件

5.) Gradle和Gradle项目

Gradle 是一种自动化构建工具包,允许通过一组构建配置文件来配置和管理项目的构建方式。这包括定义项目的构建方式、需要满足哪些依赖项才能成功构建项目以及构建过程的最终结果(或结果)。Gradle 的优势在于它为开发人员提供了灵活性。Gradle 系统是一个自包含的基于命令行的环境,可以通过插件集成到其他环境中。在 Android Studio 的情况下,Gradle 集成是通过名为 Android Studio 插件的适当命名的插件实现的。

更多详情请访问:http://www.techotopia.com/index.php/An_Overview_of_Gradle_in_Android_Studio


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