
Core BasicライブラリとしてMVVMFrameフレームワークに基づいて構築されたコンポーネント化ソリューション
MVVMFrameComponentのコンポーネントアーキテクチャ図は、次のように階層化されています。

コンポーネント化のコア基本ライブラリはMVVMFrameに基づいているため、 MVVMFrameのアーキテクチャ図は次のようにここに投稿されています。

コンポーネント化の簡単な要約は、完全なアプリまたはモジュールを複数のサブモジュールに分割し、各サブモジュールを独立してコンパイルおよび実行するか、ホストアプリにマージしてコンパイルと実行のための完全なアプリを形成できるようにすることです。各モジュールは非依存性であり、相互に対話することができます。
プロジェクトが経つにつれて、要求は変化し続け、反復します。各モジュールも比較的複雑になります。メンテナンスの難易度もそれに応じて増加し、時間の経過とともに新しい問題を引き起こす可能性があります。現時点では、コンポーネントが必要です。
アプリがコンポーネントベースの開発ソリューションを使用する場合、主な利点は次のとおりです。各モジュールのコンポーネントベースの分割の後、各サブモジュールを個別にコンパイルおよび実行できるため、特定のモジュールの開発と調整の場合、コンパイル速度と開発効率を大幅に改善できます。多人開発の場合、各人は独立したモジュールを担当します。これは、マルチパーソンチームの共同開発をより助長します。さらに、各モジュール間のコード境界は比較的明確で、後の段階で維持しやすくなります。
MVVMFRAMECOMPONENT = MVVMFRAME +コンポーネント。つまり、 MVVMFrameComponentは、 MVVMパターンアーキテクチャのコンポーネント化ソリューションを採用しています。
ホストアプリ:各子供モジュールがライブラリである場合、すべてのコンポーネントをホストアプリに統合できます。この時点で、ホストアプリはすべてのコンポーネント関数コレクションを備えた完全なアプリです。
コンポーネントのパブリックベーシックライブラリ:主にMVVMFrame Rapid Development Frameworkと、コンポーネント化されたパブリックコアベーシックライブラリが含まれており、コンポーネントプロジェクトの迅速な構築を促進します。
コンポーネントされたパブリックリソースライブラリ:各モジュールでいくつかの公共リソース関連の側面を管理することは主に便利です。
単純なジョーク関数モジュール:主に、 MVVMFrameに基づいたコンポーネント開発の実装を実証するために使用されます。これは、コンポーネント開発のモジュール実装例の1つです。
単純なニュース関数モジュール:主に、 MVVMFrameに基づいたコンポーネント開発の実装を実証するために使用されます。これは、コンポーネント開発のモジュール実装例の1つです。
プロジェクト- > build.gradle isbuildmoduleのカスタム変数
各子供モジュールを均一に管理して、アプリケーションとライブラリの切り替えを容易にするカスタム変数ISBUILDMODULE
isBuildModule = trueの場合、各サブモジュールがアプリケーションであることを意味します。つまり、モジュールを個別に実行できます。 isbuildModule = falseの場合、各サブモジュールがライブラリであることを意味します。つまり、モジュールはライブラリとしてホストアプリにマージされます。
プロジェクト- > module -build.gradle
コンポーネントモジュールUniversal Build.Gradle便利な統一管理
IsBuildModuleによると、各子供モジュールを均一に管理して、アプリケーションとライブラリを切り替えることができます。
MVVMFrameComponentのコアベーシックライブラリはMVVMFrameに基づいているため、MVVMFrameComponentを使用する場合、 MVVMFrameをより便利にするために、 MVVMFrameを特定する必要があります。ここでは、 MVVMFrame関連の使用を導入しなくなります。詳細については、MVVMFrameを直接表示できます。
一般的なモジュールについては、 Baseappで書き込みます。比較的独立したモジュールの場合、モジュールの対応するicomponentAppの実装クラスでそれらを記述できます。
特別なメモ: icomponentAppの実装は、対応するニーズのソリューションにすぎず、オプションです。必要に応じて使用します。
参照用の各モジュールのicomponentApp実装クラスの例を次に示します。
モジュールジョークのicomponentAppの実装クラスはjokeCompenentAppです
Module-NewsのIcomponentAppの実装クラスは、 NewsComponentAppです
以下は、モジュールジョークのコード例です
class JokeComponentApp : IComponentApp {
override fun onCreate ( app : BaseApp ) {
}
}マニフェストのメタデータに対応するicomponentApp実装クラスを構成すると、例は次のとおりです。
<!-- name为:IComponentApp的实现类,value固定为: ComponentApp -->
< meta-data android : name = " com.king.mvvm.joke.JokeComponentApp "
android : value = " ComponentApp " />各モジュールのicomponentApp実装クラスを取得する場合は、 BaseappのgetComponentAppメソッドを介して取得できます。
詳細については、アプリのソースコードの使用例を確認してください
MVVMFrameComponentが好きな場合、またはMVVMFrameComponentが役立っていると感じている場合は、右上隅の「星」をクリックしてサポートできます。あなたのサポートは私の動機です、ありがとう?
また、以下のQRコードをスキャンして、著者にコーヒーを飲んでもらうこともできます。
| 私のブログ | github | gitee | csdn | ブログパーク |
|---|---|---|---|---|
| ジェンリーのブログ | Jenly1314 | Jenly1314 | Jenly121 | ジェンリー |
| WeChat公式アカウント | Gmail Mailbox | QQメール | QQグループ | QQグループ |
|---|---|---|---|---|
| Jenly666 | Jenly1314 | Jenly1314 | 20867961 | 64020761 |