使用Google Guava库进行Android开发是一个好主意吗?

问题

我参与了Android应用程序的开发,这是一个相当"厚"的Web服务移动客户端。它与服务器进行了大量通信,但也有很多内部逻辑。所以,我决定使用Google Guavalibrary的一些功能来简化开发过程。以下是我非常感兴趣的功能列表:不可变集合,基本工具,集合扩展,函数式编程糖和成语(common.collectcommon.base),原始实用程序(common.primitives),散列实用程序(common.hash),并发工具(期货和AsyncFunction)。事情I不希望在Android中使用:common.cache(参见下面的问题),common.eventbus(我们有更好的Android特定库,如Otto),common.io(我们现在可以使用okio for Android)。

我读到使用Guava for Android可以显着减慢编译过程并降低整个运行时性能:Bad performance with Guava Cache on Android(在这种情况下它是合理的,不需要使用Guava的Android缓存)和Adding Google Guava to Android project - significantly slows down the build

那么,在Android项目中使用Guava库是否有效,或者这个库是专为服务器端开发而设计的,我应该使用标准解决方案吗?任何解释都将非常感激。


#1 热门回答(112 赞)

(评论太大了,所以我发布了一个答案。)我个人在每个Java项目中使用整个Guava库,当我没有显着的和正确的profiledperformance问题时。例如,如果你有Android环境中的内存问题,你可以使用ProGuard来获取你真正需要的番石榴的这些部分。

此外,there are many Android apps using Guava-不仅是小型的,即谷歌搜索和Youtube,它们直接来自谷歌。

(你还应该看到compatibility note。)