使用Google Guava库进行Android开发是一个好主意吗?
我参与了Android应用程序的开发,这是一个相当“厚”的Web服务移动客户端。 它与服务器有很大的交stream,但也有很多内在的逻辑。 所以,我决定使用Google Guava
库的一些function来简化开发过程。 下面是我非常感兴趣的function列表:不变集合,基础实用程序,集合扩展,函数式编程糖和习语( common.collect
和common.base
),基本实用程序( common.primitives
),散列实用程序( common.hash
),并发使用(期货和AsyncFunction
)。 我不想在Android中使用的东西: common.cache
(请参阅下面的问题), common.eventbus
(我们有更好的Android特定的库,比如Otto ), common.io
(我们现在可以使用okio for Android) 。
我读到,使用Guava for Android可以显着减慢编译过程,并且还会降低整个运行时间的性能: Android上的Guava Cache性能不佳 (在这种情况下,这是合理的,不需要使用Guava的Androidcaching)和添加Google番石榴到Android项目 – 显着减慢构build
那么,在Android项目中使用Guava库是否有效呢?或者这个库只用于服务器端开发,我应该使用标准解决scheme吗? 任何解释将非常赞赏。
(太大的评论,所以我发表一个答案。)就个人而言,我在每个Java项目中使用整个番石榴库,当我没有重大和正确的性能问题。 例如,如果您有Android系统环境下的内存问题,则可以使用ProGuard获取您真正需要的番石榴的这些部分。
此外, 还有很多使用番石榴的Android应用程序 – 不仅是小型应用程序 ,即谷歌search和Youtube,它们都来自谷歌。
(你也应该看兼容性说明 。)