2015-11-04 178 views
6

在Android Studio IDE中,您可以添加一个.jar文件。您还可以添加'图书馆项目'的整个项目。还有Android库(来自Gradle)添加为外部库图书馆与图书馆项目与外部图书馆的区别

的.jar Jars

图书馆项目 Library Project

外部库 External Libraries

我得到的.jar文件是正义的。但是,如何添加其他库(库项目)需要添加自己的完整构建文件(如gradle,res,src等)。并且使我的理解更加复杂,Gradle下载的文件被添加为“外部库”,并且它们具有.jar文件和res文件夹。

您能否解释为什么库可以添加为.jar,整个项目或外部库?

回答

3

您能否解释为什么库可以添加为.jar,整个项目或外部库?

你有不同的可能性,因为你可以有不同的情况。通常图书馆是由其他团队建立的,你不能决定它是如何分配的。

  • 您可以有一个自己的库或本地叉。在这种情况下你的代码,你可以作为一个模块

添加该库在这种情况下,只需添加在module/build.gradle

apply plugin: 'com.android.library' 

,并添加在主项目的依赖像:

dependencies{ 
    compile project(':module') 
} 
  • 可以使用maven dependency。在这种情况下,某人将该库上载到Maven存储库中。
    目前这是我认为最好的解决方案。

在这种情况下,只需添加一个依赖于你的项目

dependencies{ 
    compile 'group:name:version' 
} 

这种依赖关系可以是AAR文件,也罐子文件。
你也可以在公共或私人maven发布自己的图书馆。

  • 您可以在您的项目

在这种情况下添加一个AAR文件定义平库:

repositories { 
    flatDir { 
     dirs 'libs' 
    } 
} 

,并添加依赖:

dependencies { 
    compile(name:'nameOfYourAARFileWithoutExtension', ext:'aar') 
} 
  • 你可以在这种情况下,您的项目

添加jar文件通常你可以把所有罐子libs文件夹中,并添加依赖:

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
} 
+0

所以没有什么区别什么他们一旦编译完成,它的纯粹如何被添加到项目中? – Aggressor

+0

@Aggressor如果你有嵌套的依赖关系有一些区别。 Gradle使用Maven模块处理它,而您必须使用aar和jar文件来管理自己。 –

+0

@GabrieleMariotti你能告诉我,当aar lib有一个像retrofit这样的依赖项时会发生什么情况,这是否包含了aar文件所链接的模块/项目所需的改造?我认为这不足以让我对这个疑问提出一个独立的问题 – user2450263