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

5
我正在开发一个Android库项目,想要将Picasso添加到我的库中。 我注意到不同的库使用不同的方法来实现这一点:
  • 一些库使用静态库依赖(如Glide lib中的gif_encoder和gif_decoder库)
  • 一些库使用通常的动态gradle或pom依赖项(如Picasso使用OKHttp或Wire使用Retrofit和RxJava)。我不是指带有+符号的动态版本(如2.3.3+)
  • 一些库需要将显式依赖项添加到某个库中并与目标库一起使用(如RxAndroid使用RxJava)
所以问题是:将第三方库添加到Android库项目的最佳方法是什么?我的意思是这种方式可以帮助简化最终用户的库集成过程,并避免版本冲突和其他潜在问题。 每种方法的优缺点是什么?

从我的角度来看,在库模块的gradle中添加依赖项是最好的方法。通过这样做,您可以向最终用户透明地展示您正在使用什么来实现其目的。如果让用户一起导入您的依赖项,则会增加导入库的复杂性,甚至在用户未导入它们的情况下出现错误。但是,如果用户正在使用与模块使用的库版本不同的版本,则可能会发生两者之间的冲突,因此用户必须在gradle文件中解决它们。 - E. Fernandes
1个回答

2
大多数情况下,你并没有真正的选择余地,你将不得不遵循库安装建议。
如果所有选项都可用,我认为使用Gradle或Maven会更容易,因为你只需要在配置文件中添加一行代码来设置一个新的库。
当有更新时,你只需要更改版本号,系统将自动下载并更新库。
当你必须使用静态库时,你需要自己设置并将外部库链接到你的项目中。现在,我只在必须要定制一些代码的情况下使用静态库。
虽然我并不是这方面的专家,但自从我迁移到Android Studio后,Gradle为我节省了大量时间(我以前使用Eclipse ADT,从未成功地将Gradle集成到其中)。
你也可以直接在Gradle上编译你的外部jar文件,方法是:
compile fileTree(dir: 'libs', include: ['*.jar'])

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接