将第三方库依赖项添加到Android库

将第三方库依赖项添加到Android库,android,maven,static-libraries,dynamic-library,Android,Maven,Static Libraries,Dynamic Library,我正在做安卓图书馆项目,想把毕加索加入我的图书馆。 我注意到不同的库使用不同的方法来实现这一点: 某些库使用静态库依赖项(如中的gif_编码器和gif_解码器库) 一些库使用常用的动态gradle或pom依赖项(如使用OKHttp或使用Refination和RxJava)。我这里指的不是带有+符号的动态版本(如2.3.3+) 有些库需要将显式依赖关系与目标库一起添加到某些库中(如使用RxJava) 那么问题是:向Android库项目添加第三方库的最佳方式是什么?我指的是有助于为最终用户简化库

我正在做安卓图书馆项目,想把毕加索加入我的图书馆。 我注意到不同的库使用不同的方法来实现这一点:

  • 某些库使用静态库依赖项(如中的gif_编码器和gif_解码器库)
  • 一些库使用常用的动态gradle或pom依赖项(如使用OKHttp或使用Refination和RxJava)。我这里指的不是带有+符号的动态版本(如2.3.3+)
  • 有些库需要将显式依赖关系与目标库一起添加到某些库中(如使用RxJava)
那么问题是:向Android库项目添加第三方库的最佳方式是什么?我指的是有助于为最终用户简化库集成过程并避免版本冲突和其他潜在问题的方法。
特定方法的优缺点是什么?

大多数情况下,您实际上没有选择余地,必须遵循库安装建议

如果所有选项都可用,我认为使用Gradle或Maven会容易得多,因为您需要做的唯一事情通常是在配置文件中添加一行来设置新库

当更新可用时,您将更改版本,系统将自动为您下载并更新库

当您必须使用静态库时,您需要自行设置并将外部库链接到您的项目。现在,如果我必须自定义其中的一些代码,我只保留静态库

我不是这方面的专家,但自从我迁移到Android Studio后,Gradle为我节省了很多时间(我以前使用过EclipseADT,从未成功地将Gradle集成到它上)

您还可以使用以下命令在Gradle上直接编译外部jar文件:

compile fileTree(dir: 'libs', include: ['*.jar'])

在我看来,在库模块gradle中添加依赖项是最好的方法。通过这样做,您可以让最终用户清楚地知道您正在使用什么来实现其目的。如果让用户一起导入依赖项,则会增加库导入过程的复杂性,甚至在用户不导入依赖项时会出现错误。但是,如果用户使用的是模块使用的库的不同版本,则可能会在两者之间产生冲突,因此用户必须在gradle文件中解决它们。