4

私はAndroidアプリケーションの設計に取り組んでいますが、いくつか質問があります。

現在、私が考えているアーキテクチャは次のとおりです。

  • ユーザーインターフェイス用のAndroidアプリケーション、
  • ビジネスロジック用のライブラリ(Androidまたは「純粋な」Java?)、
  • SQLLiteデータベースにアクセスするためのAndroidライブラリ(ビジネスロジックで使用されます)、
  • Wifi / BTモジュールにアクセスするためのAndroidライブラリ(ビジネスロジックで使用されます)。

アーキテクチャクイックスキーマ

近い将来、このAndroidアプリケーションのJavaベースのバージョンがWin / Mac / Linux用に開発される可能性が非常に高いため、Android固有のAPIとは別にビジネスロジックを維持しようとしています。

基本的に、ビジネスロジックは組み込みのSQLite DBを使用する必要があり、BTアダプターを使用して、たとえばWifi経由でインターネットにアクセスする必要があります。これは2つの専用Androidライブラリを使用して行うことができます。問題は、ビジネスロジックを「純粋な」Javaライブラリにすぎず、Androidプロジェクトに基づいて構築されないようにすることです。このアーキテクチャによれば、それは実現可能ですか。Androidアプリケーションには、2つのAndroidベースのライブラリのセットアップ、構成、および開始を担当する構成「モジュール」があります。

現在選択されているアーキテクチャはあなたの目には意味がありますか?

このアプリケーションに対するアドバイスは次のとおりです。

  1. 優れた抽象化レベル(DBおよびBT / Wifiアダプター上)で可能な限りモジュール化する、
  2. Android APIからビジネスロジックを可能な限り明確に保ち、
  3. このソリューション全体を従来のJavaアプリケーションに適合させるには、最小限の変更が必要です。

お手数ですが、よろしくお願いいたします。

4

1 に答える 1

3

私は同様の質問をしました.Android、Blackberry、そしておそらくJ2ME用のアプリを開発することを目指していました。これは、コア ビジネス ロジックとは別に、プラットフォーム固有のコンポーネント (UI、DB アクセス、ネットワーク アクセス) を実装することで実現しました。コア BL は、Android アプリと BB アプリに配布する共通の JAR ライブラリとして開発されました。

うまくいきましたが、私はソリューションに本当に満足していませんでした. ここの回答で説明したように(そして上記の最初の質問への回答でも)、BB/J2ME が Java のリリースに追いついていないため、実際的な困難に直面しました。私の Android 実装は、多くの「レガシー」コードを使用することになりました (たとえば、ジェネリックはありません)。

そうは言っても、次の目標は BB や J2ME ではなくデスクトップに移行することなので、Android とデスクトップの Java アプリの間で設計を共通に保つだけでなく、実装も共有できる可能性があります。

抽象化に関するご質問については、インターフェイス ベースのビジネス ロジックと DB ロジックのアプローチをお勧めします。上記の私の回答の最初の段落のリンクは、これを達成する方法の簡単な例を示していますが、詳細を提供できれば幸いです。

于 2012-01-25T12:16:59.387 に答える