在Android中导入库项目的更好方法

时间:2016-12-27 10:11:43

标签: android android-studio gradle

我想知道在Android Studios gradle中包含库项目的推荐方法是什么:

第一种方式:

compile 'de.greenrobot:greendao:2.1.0'

第二种方式:

compile files('libs/greendao-2.0.0.jar')

有什么优点和缺点。

4 个答案:

答案 0 :(得分:2)

在第一种情况下,gradle完全处理依赖管理过程,即下载jar并将其包含在项目中。

在第二种情况下,您必须手动下载jar并将其包含在libs文件夹中。

更简单和首选的方式是第一种方式。

答案 1 :(得分:1)

相信我,第二种方式可以节省大量的建筑时间。 顺便说一句,时间就是金钱。

答案 2 :(得分:1)

第一种方式,即:

compile 'de.greenrobot:greendao:2.1.0'
compile 'com.library.sample:library:x.x.x'

Gradle将找到这些依赖项,并使它们在您的构建中可用。如果您的依赖项具有依赖项,gradle也会查找它们并将其包含在项目中。因此,您不需要手动添加所有依赖项。

引自Gradle documentation

  

<强> 7.1。什么是依赖管理?

     

非常粗略地说,依赖管理由两部分组成。首先,   Gradle需要了解项目需要构建的内容   或者跑,以便找到它们。我们将这些传入的文件称为   项目的依赖关系。其次,Gradle需要建立和   上传项目生成的内容。我们称之为传出   提交项目的出版物。让我们来看看这两件作品   更详细:

     

大多数项目并非完全独立。他们需要建立文件   通过其他项目进行编译或测试等。对于   例如,为了在我的项目中使用Hibernate,我需要包含   我编译源代码时,类路径中有一些Hibernate jar。跑步   我的测试,我可能还需要包括一些额外的罐子   测试类路径,例如特定的JDBC驱动程序或Ehcache jar。

     

这些传入的文件构成了项目的依赖关系。摇篮   允许您告诉它项目的依赖性是什么,所以   它可以负责找到这些依赖关系,并制作它们   在您的构建中可用。可能需要下载依赖项   从远程Maven或Ivy存储库,或位于本地   目录,或者可能需要由同一个中的另一个项目构建   多项目构建。我们将此流程依赖性解析称为。

     

请注意,此功能提供了优于Ant的主要优势。使用Ant,   您只能指定绝对路径或相对路径   要加载的特定罐子。使用Gradle,您只需声明“名称”即可   您的依赖项和其他层确定从哪里获取这些依赖项   来自的依赖。您可以通过添加从Ant获得类似的行为   Apache Ivy,但Gradle做得更好。

     

通常,项目的依赖关系本身就有   依赖。例如,Hibernate核心需要其他几个   运行时,类路径上存在的库。所以,当Gradle   为您的项目运行测试,它还需要找到这些   依赖关系并使它们可用。我们称之为传递性   的依赖关系。

Gradle会将下载的库存储到USER_HOME/.gradle。在Linux中,它会将其存储在/home/user/.gradle/caches/modules-2/中。在Mac中,它会将其存储在~/.gradle/caches/modules-2/

顺便说一句,如果您使用过该库,则可以将Android Studio设置为使用该库的本地缓存。

在第二种方式,您需要手动为项目添加库。您还需要包含库的所有剩余依赖项。这很容易出错。

答案 3 :(得分:1)

第一种方式:编译'de.greenrobot:greendao:2.1.0'

PRO:

  • 轻松,快速更新

CON:

  • 更新您的gradle文件时需要Internet连接

第二种方式:编译文件('libs / greendao-2.0.0.jar')

PRO:

  • 您可以对库进行更改,但不会覆盖这些更改。
  • 就像钱思俭说的那样,建立起来更快。

CON:

  • 更多工作要设置,更新

在大多数情况下,我认为你想要采用第一种方式。