2

要件が次の場合、小さな Android アプリを大きなアプリに含める正しい方法は何でしょうか。

  1. 小さなアプリは疎結合にし、個別に開発する必要があります
  2. 個々の小さなアプリが独自に処理するのではなく、より大きなアプリがいくつかの共通の処理を行う必要があります。
  3. より大きなアプリは、いくつかの決定を行うために、小さなアプリの状態について何かを行う必要があります。

最初に頭に浮かぶのは、ある種のプラグイン パターンです (ただし、私はそれについてあまり知らないので、間違ったことを言うことができます)。これにより、小さなアプリごとに共通のインターフェイスを実装し、大きなアプリで使用する必要があります。コンポーネントを扱うときのそのインターフェース。

それは正しいアプローチですか?

Android をプラットフォームとして考えると、これは正しい考え方でしょうか。

4

1 に答える 1

3

最善の策は、各サブアプリを「ライブラリ」にすることです。Eclipse でワークスペースを作成し、新しい Android プロジェクトを作成してライブラリとしてマークします。

サブアプリごとにそれを行います。

次に、各ライブラリをインポートし、それぞれを完全なアプリケーションの一部として使用する非ライブラリ アプリケーションを作成します。

これは、プラグイン インターフェイスなどの作成について心配する必要がないことを意味します。

また、この種のパターンに従えば、無料と有料のアプリケーションを作成するときに、別のアプリケーションを追加し、必要に応じて機能を削除/変更し、同じコード ベースから両方をコンパイルすることができます。

アップデート

適切なドキュメントについては、 http://developer.android.com/tools/projects/projects-eclipse.htmlをご覧ください。

これは、両方のタイプのプロジェクトを作成する方法と、面倒な部分であるマニフェストでそれらを参照する方法を示しています。

Update2

コメントから、ライブラリをインポートするメイン アプリケーションでライブラリ アクティビティを使用できるかどうか尋ねられました。

ライブラリでアクティビティを作成します

com.example.myapp.library.MyActivity

次に、マニフェストに詳細を追加します

<activity name="com.example.myapp.library.MyActivity">

これで、そこで使用できます。必要に応じて、ライブラリ アクティビティをメインのスタートアップ アクティビティとして使用することもできます。

マニフェストを次のように変更して、ライブラリ アクティビティを拡張することもできます。

<activity name="MyNewActivity">

次に、新しいアクティビティを作成します

クラス MyNewActivity は com.example.myapp.library.MyActivity を拡張します

次に、必要なものをオーバーライドし、必要に応じてsuperを呼び出してライブラリ メソッドにアクセスします。

お気軽にご質問ください。

于 2012-12-23T15:07:05.850 に答える