问题
我参与了Android应用程序的开发,这是一个相当"厚"的Web服务移动客户端。它与服务器进行了大量通信,但也有很多内部逻辑。所以,我决定使用Google Guava
library的一些功能来简化开发过程。以下是我非常感兴趣的功能列表:不可变集合,基本工具,集合扩展,函数式编程糖和成语(common.collect
和common.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。)