我参与了Android应用程序的开发,这是一个相当“厚”的Web服务移动客户端。它与服务器进行了大量的通信,但也有很多内部逻辑。所以,我决定使用Google Guava
库的一些功能来简化开发过程。以下是我非常感兴趣的功能列表:不可变集合,基本工具,集合扩展,函数编程糖和成语(common.collect
和common.base
),原始实用程序(common.primitives
),散列实用程序(common.hash
),并发工具(期货和AsyncFunction
)。我不想在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库是否有效,或者这个库只用于服务器端开发,我应该使用标准解决方案?任何解释都将非常感激。
(评论太大了,所以我发布了一个答案。)就个人而言,我在每个Java项目中使用整个Guava库,当我没有重要且适当分析的性能问题时。例如,如果你有Android环境中的内存问题,你可以使用ProGuard来获取你真正需要的Guava的这些部分。
此外,there are many Android apps using Guava - 不仅是小型的,即谷歌搜索和Youtube,直接来自谷歌。
(你也应该看看compatibility note。)