Android プラットフォームはデザイン パターンの共通セットを提供します。Web アプリに比べてハードウェア リソースが限られているため、多くの場合、これらを製品コードで直接使用することをお勧めします。基本プラットフォームを「ラップ」するようなフレームワークは他にもあります。これらは、特定の目的がある場合 (またはおそらくプロトタイピング/実験用) に検討する価値がありますが、最高レベルのサポートを得るには、通常、標準コンポーネントを使用するのが最善です。
これは、UI ソリューションに取り組む際の優れたリソースです: http://www.androidpatterns.com/
特にDIの場合:Android 用のSpringフレームワークがあります。私はそれを試してみましたが、非常に有望に見えます。これに代わる別の方法として、Roboguice について既に言及しました。ただし、パフォーマンスとライブラリのオーバーヘッドを回避するための最も簡単な方法は、自分のコード内に依存関係を登録して挿入する単純なリフレクション ベースのクラスを作成することです。このアプローチと似ていますが、通常はインジェクション コードを別のシングルトンに移動し、そこから参照します。
私の経験では、サードパーティの製品のほとんどは、現時点では信頼できるほど成熟しておらず、基本プラットフォームが提供するものに加えて、実際には多くを提供していません. ただし、それらは常に進歩しているため、時々ビッグネームを試してみてください.