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