128

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

我读到使用 Guava for Android 会显着减慢编译过程并降低整个运行时性能: Android 上使用 Guava Cache 的性能不佳 (在这种情况下这是合理的,不需要使用 Guava 的 Android 缓存)和 添加 Google Guava 到 Android 项目 - 显着减慢构建速度

那么,在 Android 项目中使用 Guava 库是否有效,或者该库旨在用于服务器端开发,我应该使用标准解决方案?任何解释将不胜感激。

4

1 回答 1

122

(评论太大了,所以我发布了一个答案。)就我个人而言,我在每个 Java 项目中使用整个 Guava 库,并且当我没有显着且正确分析的性能问题时。例如,如果您确实有内存问题,例如在 Android 环境中,您可以使用ProGuard仅获取您真正需要的 Guava 的这些部分。

此外,还有许多使用 Guava 的 Android 应用程序- 不仅是小型应用程序,即直接来自 Google 的 Google Search 和 Youtube。

(您还应该看到兼容性说明。)

于 2013-02-20T11:44:50.830 回答