我为有离岸团队开发的android移动应用程序的公司工作。我有权访问GitHub存储库。模块,库,jar,库项目,gradle项目,aar和jar之间的区别
我拼凑android应用程序块,它是给我地狱。
如何区分模块,库,jar,库项目,gradle项目,aar和jar。有人可以给我一个实际的定义。不是出于惊人的谷歌搜索。我也有Google。
PS是的我是一个noob,并不以此为荣。
我为有离岸团队开发的android移动应用程序的公司工作。我有权访问GitHub存储库。模块,库,jar,库项目,gradle项目,aar和jar之间的区别
我拼凑android应用程序块,它是给我地狱。
如何区分模块,库,jar,库项目,gradle项目,aar和jar。有人可以给我一个实际的定义。不是出于惊人的谷歌搜索。我也有Google。
PS是的我是一个noob,并不以此为荣。
我只是带来有关它们的简要说明。我希望我很清楚。
模块:模块是您的应用程序的一个组件,可以独立构建/测试,如果需要可以在另一个应用程序中使用它。
库: AAR文件,JAR文件等
JAR: Java库
AAR:就像JAR,唯一的区别是,它也包含了像资源等的Android特定的文件
Gradle项目: Gradle只是一个构建系统,它被Android Studio用来构建android项目。与之前在Eclipse中使用的构建系统相比,它非常强大。
库项目: Android库项目与Android应用程序项目类似,它还在项目的根目录中包含项目清单文件。此外,该目录还包含src,res和其他目录,这些目录在构建应用程序项目时也会找到。 但是,有一个显着的差异。您无法将库项目编译为APK文件,因为库项目没有描述应用程序。相反,当应用程序的项目和源代码引用库项目时,它提供了可重用的代码和资源,这些代码和资源对应用程序有贡献。在构建时,此代码和这些资源将合并到应用的APK文件中。
要更多地解释这一点,让我给你举个例子: 说你要使用的网络库凌空制作API调用,现在因为这是从谷歌的开放源代码库,你可以克隆它制作的定制根据您的要求。
您可以凌空库为您图书馆项目,独立构建它,单元测试等
现在说你开始建立你需要做HTTP调用,所以你需要添加凌空库的应用程序到你的项目。你有两个选择:
编译你的库项目齐射,生成aar文件,并将其添加到你的应用程序项目。
在项目中添加Volley作为模块。 (如果您选择此选项,您可以更改在同一工作室项目抽射库,因为它会在你的项目中的组件行为)
请让我知道,如果事情是不明确的。
一个module
是源文件的集合,构建设置,让您将项目划分成独立功能单位。您的项目可以有一个或多个模块,一个模块可以使用另一个模块作为依赖项。每个模块都可以独立构建,测试和调试。
有在Android Studio
的模块4类型。
的Android支持库提供了许多未构建在框架中的功能。这些库提供了向后兼容的新功能版本,提供了不包含在框架中的有用UI元素,并提供了一系列应用程序可以使用的实用程序。
支持库提供一个范围的不同的特征:框架组件的
JarFile
用于读取JAR条目,并从jar文件及其关联数据。
的更多详情,请这样的:https://developer.android.com/reference/java/util/jar/JarFile.html
Android团队推出了一款名为new binary distribution format
的Android 档案(AAR)。 .aar包是Android库项目的二进制分发。
AAR类似于JAR文件,但它可以包含资源以及编译的字节码。这允许一个AAR文件是一个Android应用程序的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
@Ackman在下面看到我的答案。 – Ironman
在使用库作为.aar文件或模块时是否存在任何性能或逆向工程相关的差异? – Srinivasan