1. ホーム
  2. java

[解決済み] Androidの開発でGoogle Guavaライブラリを使うのは良いアイデアですか?

2022-07-19 18:18:27

質問

私は、Webサービスのためのかなりquot;厚い"モバイルクライアントであるAndroidアプリケーションの開発に関与しています。これは、サーバーとの通信が多いだけでなく、多くの内部ロジックも持っています。そこで、私は Google Guava ライブラリのいくつかの機能を使用して、開発プロセスを簡素化することにしました。以下は、私が非常に興味を持っている機能のリストです:不変のコレクション、基本ユーティリティ、コレクション拡張、関数型プログラミングのシュガーとイディオム ( common.collectcommon.base ) 、プリミティブ・ユーティリティ ( common.primitives ) 、ハッシュユーティリティ ( common.hash ) 、並行処理ユーティリティ (フューチャーズと AsyncFunction ). 私の場合 いらないもの をAndroidで使うために common.cache (を使うことができます(下の質問参照)。 common.eventbus (これにはもっと良いAndroid特有のライブラリ、例えば オットー ), common.io (私たちは オキオ を使うことができます。)

Android で Guava を使用すると、コンパイル処理が大幅に遅くなり、実行時全体のパフォーマンスも低下する可能性があると聞きました。 Android で Guava Cache を使用するとパフォーマンスが低下する (この場合は合理的であり、Android 用の Guava のキャッシュを使用する必要はありません) と Android プロジェクトに Google Guava を追加すると、ビルドが大幅に遅くなる

では、AndroidプロジェクトでGuavaライブラリを使うのは効率的なのか、それともこのライブラリは だけ にしか使えないので、標準的なソリューションにした方が良いのでしょうか?どんな説明でも非常に感謝します。

どのように解決するのですか?

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

さらに を使ったAndroidアプリはたくさんあります。 - Google 検索や Youtube など、Google から直接提供されている小さなものだけでなく、多くの Android アプリが Guava を使用しています。

(また 互換性ノート .)