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

标签 java android guava

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

(您还应该看到 compatibility note 。)

关于java - 使用 Google Guava 库进行 Android 开发是个好主意吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14978699/

相关文章:

Java流合并与输出

java - 使用 java 代码清理 JBoss 7 tmp

java - 在 Java 中将特定枚举分配给 Class<Enum>

java - 使用字符串引用我需要设置文本的标签?

java - Surface::setBuffersDimensions 使用 android libdgdx 应用程序发送垃圾邮件

android - OkHttpClient 是否有最大重试次数

java - 嵌套 Map 的基于时间戳的排序

java - google guava cachebuilder 在 exipreAfterAccess 和 expireActerWrite 之间使用更长的时间

java - 你如何返回到 Java 中的特定行?

java - 解析 Android Volley JSONArray 响应