web-dev-qa-db-ja.com

Android開発にGoogle Guavaライブラリを使用することをお勧めしますか?

私はAndroidアプリケーションの開発に携わっています。これは、Webサービス用のかなり「厚い」モバイルクライアントです。サーバーと頻繁に通信しますが、内部ロジックもたくさんあります。そこで、Google Guavaライブラリのいくつかの機能を使用して、開発プロセスを簡素化することにしました。私が非常に興味を持っている機能のリストは次のとおりです。不変コレクション、基本ユーティリティ、コレクション拡張機能、機能プログラミングシュガーとイディオム(common.collectおよびcommon.base)、プリミティブユーティリティ(common.primitives) 、ハッシュユーティリティ(common.hash)、同時ユーティリティ(将来およびAsyncFunction)。 IでAndroidで使用したくないcommon.cache(以下の質問を参照)、common.eventbus(より良いAndroid Otto )、common.ioなどの特定のライブラリ(Androidには okio を使用できます) 。

AndroidにGuavaを使用すると、コンパイルプロセスが大幅に遅くなり、ランタイム全体のパフォーマンスも低下する可能性があることを読みました。 Android上のGuava Cacheのパフォーマンスが悪い Android用のGuavaのキャッシュを使用する必要はありません) Google GuavaをAndroidプロジェクトに追加-ビルドを大幅に遅くします

だから、AndroidプロジェクトでGuavaライブラリを使用するのが効率的ですか、このライブラリは使用するように設計されています のみ サーバー側の開発のために、標準ソリューションを使用する必要がありますか?どんな説明も大歓迎です。

121

(コメントには大きすぎるので、回答を投稿します。)個人的には、すべてのJavaプロジェクトでGuavaライブラリ全体を使用し、がなく、適切にプロファイリングされていない場合パフォーマンスの問題。たとえば、Android環境のようなメモリの問題がある場合は、 ProGuard を使用して、本当に必要なGuavaのこれらの部分のみを取得できます。

さらに、 Guavaを使用するAndroidアプリがたくさんあります -小さなアプリだけでなく、Googleから直接提供されるGoogle SearchやYoutubeもあります。

compatibility note も表示されるはずです。)

116
Xaerxess