Android 模块、库、jar、库项目、gradle项目、aar和jar之间的区别

Android 模块、库、jar、库项目、gradle项目、aar和jar之间的区别,android,android-studio,gradle,Android,Android Studio,Gradle,我在一家公司工作,该公司拥有一个由离岸团队开发的android移动应用程序。我可以访问GitHub存储库 我正在一块一块地拼凑android应用程序,这让我感到非常痛苦 如何区分模块、库、jar、库项目、gradle项目、aar和jar。有人能给我一个实用的定义吗。不是从一个奇怪的谷歌搜索出来的。我也有谷歌 PS是的,我是一个noob,并不为此感到骄傲。1.)模块 模块是源文件和生成设置的集合,允许您将项目划分为离散的功能单元。您的项目可以有一个或多个模块,一个模块可以使用另一个模块作为依赖项。

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

我正在一块一块地拼凑android应用程序,这让我感到非常痛苦

如何区分模块、库、jar、库项目、gradle项目、aar和jar。有人能给我一个实用的定义吗。不是从一个奇怪的谷歌搜索出来的。我也有谷歌

PS是的,我是一个noob,并不为此感到骄傲。

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

Android Studio中有4种类型的模块

  • 电话和桌子模块
  • 安卓穿戴模块
  • 安卓电视模块
  • 玻璃模块
2.)支持库 Android支持库提供了许多框架中未内置的功能。这些库提供了新功能的向后兼容版本,提供了框架中未包含的有用UI元素,并提供了一系列应用程序可以利用的实用程序

支持库提供了一系列不同的功能:

  • 框架组件的版本
  • UI元素来实现推荐的Android
  • 支持不同的应用程序
  • 杂项功能
3.)Jar文件
JarFile
用于从jar文件中读取jar条目及其相关数据

有关更多详细信息,请访问:

4.)Android库项目 安卓团队推出了一种名为安卓存档(AAR)
新二进制分发格式。.aar包是Android库项目的二进制发行版

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

5.)格拉德尔和格拉德尔项目
Gradle
是一个自动构建工具包,它允许通过一组构建配置文件来配置和管理项目的构建方式。这包括定义如何构建项目、成功构建项目需要满足哪些依赖关系以及构建过程的最终结果(或结果)。Gradle的优势在于它为开发人员提供的灵活性。Gradle系统是一个独立的、基于命令行的环境,可以通过使用插件集成到其他环境中。对于Android Studio,Gradle集成是通过适当命名的Android Studio插件提供的


有关更多详细信息,请访问此网站:

我只是简单介绍一下其中的每一项。我希望我明白了

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

库:AAR文件、JAR文件等

JAR:Java库

AAR:就像JAR一样,唯一的区别是它还包含android特定的文件,如资源等

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

库项目:Android库项目类似于Android应用程序项目,因为它还包括项目根目录中的项目清单文件。此外,此目录包含src、res以及在构建应用程序项目时也可以找到的其他目录。 然而,有一个显著的差异。无法将库项目编译为APK文件,因为库项目不描述应用程序。相反,它提供了可重用的代码和资源,当应用程序的项目和源代码引用库项目时,这些代码和资源将为应用程序做出贡献。在构建时,此代码和这些资源合并到应用程序的APK文件中

为了进一步解释这一点,让我举个例子: 假设您想使用网络库截取进行API调用,现在由于这是一个来自Google的开源库,您可以根据需要进行定制

您可以将volley库作为库项目、独立构建、单元测试等

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

  • 编译你的库项目截取,生成aar文件并将其添加到你的应用程序项目中

  • 在项目中添加截击作为模块。(如果选择此选项,则可以在同一studio项目中更改volley库,因为它将作为项目中的组件)


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

    将库用作.aar文件或模块是否有任何性能或与逆向工程相关的差异?非常感谢,我知道已经晚了四年,但这在四年后更有意义。