我在一家拥有由离岸团队开发的Android移动应用程序的公司工作。我可以访问GitHub存储库。
我正在逐块拼凑Android应用程序,它给了我地狱。
如何区分模块,库,jar,库项目,gradle项目,aar和jar。有人可以给我一个实际的定义。不是出于一个疯狂的谷歌搜索。我也有谷歌。
PS是的我是一个菜鸟,并不以此为荣。
答案 0 :(得分:4)
我只是简单介绍一下这些内容。我希望我很清楚。
模块:模块是应用程序的一个组件,可以独立构建/测试,并在需要时在另一个应用程序中重新使用它。
库: AAR文件,JAR文件等。
JAR: Java库
AAR:就像JAR一样,区别在于它还包含资源等特定于Android的文件。
Gradle项目: Gradle只是一个构建系统,Android Studio用它来构建android项目。与之前在Eclipse中使用的构建系统相比,它非常强大。
图书馆计划:Android图书馆项目类似于Android应用项目,因为它还包含项目根目录中的项目清单文件。此外,此目录包含src,res和您在构建应用程序项目时也找到的其他目录。 但是,存在显着差异。您无法将库项目编译为APK文件,因为库项目不描述应用程序。相反,它提供了可重用的代码和资源,当应用程序的项目和源代码引用库项目时,这些代码和资源可以为应用程序做出贡献。在构建时,此代码和这些资源将合并到应用程序的APK文件中。
为了解释这个问题,请举个例子: 假设您想使用网络库凌空进行API调用,现在因为这是来自Google的开源库,您可以根据您的要求克隆它进行自定义。
您可以将排球库作为图书馆计划,独立构建,单元测试等。
现在假设您已经开始构建一个需要进行HTTP调用的应用程序,因此您需要将volley库添加到项目中。你有两个选择:
编译您的图书馆项目齐射,生成aar文件并将其添加到您的应用项目中。
在项目中添加Volley作为模块。 (如果选择此选项,您可以更改同一工作室项目中的排球库,因为它将作为项目中的组件)
如果不清楚,请告诉我。
答案 1 :(得分:3)
module
是源文件和构建设置的集合,允许您将项目划分为离散的功能单元。您的项目可以有一个或多个模块,一个模块可以使用另一个模块作为依赖项。每个模块都可以独立构建,测试和调试。
Android Studio
中有 4类型的模块。
Android支持库 提供了许多未内置于框架中的功能。这些库提供向后兼容的新功能版本,提供框架中未包含的有用UI元素,并提供应用程序可以使用的一系列实用程序。
支持库提供范围的不同功能:
JarFile
用于从jar文件中读取jar条目及其相关数据。
有关详细信息,请访问:https://developer.android.com/reference/java/util/jar/JarFile.html
Android小组推出了名为 Android ARchive(AAR)的new binary distribution format
。 .aar包是Android库项目的二进制分发。
AAR类似于JAR文件,但它可以包含资源以及编译的字节码。这允许AAR文件是类似于included in the build process
JAR file
Gradle
是一个自动构建工具包,它允许通过一组构建配置文件配置和管理项目的构建方式。这包括定义如何构建项目,成功构建项目需要满足哪些依赖项以及构建过程的最终结果(或结果)应该是什么。 Gradle的优势在于它为开发人员提供的灵活性。 Gradle系统是一个独立的,基于命令行的环境,可以通过使用插件集成到其他环境中。对于Android Studio,通过适当命名的Android Studio插件提供Gradle集成。
有关详细信息,请访问:http://www.techotopia.com/index.php/An_Overview_of_Gradle_in_Android_Studio