23

非常に複雑で多くのビジネスロジックを持つAndroidプロジェクトでguiceを使用することについて議論しています。Guice はぴったりのように思えますが、深く読み始めると、必要以上に複雑に見えてきます。

私が理解できないことの 1 つは、Guice が非常に優れており、Java コードを記述するための最良の方法である場合、Guice を使用する Android コードが非常に少ないのはなぜでしょうか...そして、なぜ Google は Android の内部で Guice を使用しなかったのですか?

4

4 に答える 4

27

Guice を使用することは完全に理にかなっており、実際、多くのアプリケーションで使用されています。拡張機能 RoboGuice は、Android を非常に生産的に使用できるようにするいくつかの機能を追加します。

実際、これなしで Android アプリを作成することは想像できません。痛すぎる。

Web サイトで Roboguice を使用するアプリへのリンクを確認してください (Google Docs、OpenTable など)。また、Square アプリなどの他のアプリも、Guice を直接使用することが知られています。

それは完全に理にかなっています..行ってください!

Robolectric と一緒に使用すると、テスト作業も容易になります。

PS: 私は RoboGuice のコミッターなので、部分的です ;-)

PPS - 2013 年 6 月: 最近の開発により、ビルド時にほとんどの作業を行い、ランタイム リフレクション (Android では遅い) のパフォーマンス ヒットを回避するため、他のアノテーション/依存性注入ベースのフレームワークが生まれました。パフォーマンスが重要な作業 - 興味がある場合は、Dagger と AndroidAnnotations を確認してください。

于 2011-10-18T21:27:01.980 に答える
27

実際、Google は、メモリ オーバーヘッドのために、Android アプリケーションで Guice または RoboGuice を使用することを推奨していません。

ソース:

http://developer.android.com/training/articles/memory.html#DependencyInjection

5.11.2014 編集:

Android 専用の高速依存性注入ライブラリがあります。ますます多くの人がそれを使用しているのを見ることができます:

http://square.github.io/dagger/

13.04.2015 編集: Google は、実行時にリフレクションを使用しない独自のバージョンの短剣をリリースしました: http://google.github.io/dagger/

于 2014-03-05T08:37:28.570 に答える
13

RoboGuiceがあるのをご存知ですか?Android用のGuiceです。

于 2011-10-18T20:11:11.843 に答える
12

依存性注入フレームワークの強みを実証する際の問題は、単純な Hello World アプリケーションでは実現できないことです。これらのフレームワークは、非常に複雑な大規模システムでのみ価値を発揮します。また、彼らはどういうわけか急な学習曲線を持っています.

したがって、十分な数のチュートリアル (Guice を使用するオープン ソース プロジェクト) が見つからないのはごく普通のことです。これは、公開されないエンタープライズ アプリケーションで最もよく使用されます。

Google が Guice を使用しない理由として、Guice はどこでも使えるわけではありません。パフォーマンスのオーバーヘッドが追加され、必要のない場所で使用しても意味がありません。

于 2011-10-18T20:09:06.120 に答える