プロジェクトのアドレスを最初に入力します: GitHub - iblue007/SmartRouter: コンポーネント化されたフレームワークを段階的に構築する
コンポーネント化されたものには誰もが注目するでしょうし、コンポーネント化の利点を知っておく必要があるため、ここでは詳しく説明しません。
コンポーネント化を記述するには、まずコンポーネント化された構造を構築する必要があります。
たとえば、コンポーネントとプラグインを独立して実行できるようにする方法については、まず簡単な変数コントロールを実装してみましょう (後のブログ記事で他の実装方法を紹介します)。
このバージョンでは、まずカスタムパラメータ、つまりスイッチを設定することでコンポーネントとメインプロジェクト間の切り替えを制御し、開いたときはコンポーネント化のプラグイン、閉じたときは独立したアプリになります。 . スイッチは次のとおりです。
Gradle は、ext プロパティを通じて実装される追加のカスタム プロパティを追加できます。まず新しいconfig.gradleファイルを作成し、動的な切り替え用に isRelease プロパティをカスタマイズします: コンポーネント モード/統合モード
では、この設定ファイルをどのように使用するのでしょうか? config.gradle ファイルは、apply fromを通じてプロジェクトのルート build.gradle ファイルで 参照される必要があります。
次に、いくつかの判断を下す必要があります (デモには 2 つのモジュールがあり、1 つはアプリ、もう 1 つは私のモジュールです)
1. コンポーネント化の場合、メインプロジェクトアプリはmyモジュールを参照する必要がありますが、コンポーネント化されていない場合、myモジュールは参照されません。
2. 同様に、私のモジュールでは、私のモジュールがコンポーネント モジュールである場合、私のモジュールはパッケージ名 applicationId を持つことができず、build.gradle は com.android.library を参照する必要があります。私のモジュールが独立したアプリ モジュールの場合、それは、独立した minifest.xml ファイル、build.gradle は com.android.application を参照する必要があります
ここまでで、最も基本的なコンポーネント化プロジェクトが実現できましたが、この部分のコードを見たい場合は、github のログから以下のログサイクルを見つけて、最も基本的なコンポーネント化アップとしてのコードを確認できます。
気に入っていただけましたら、「いいね!」をお願いします、ありがとうございます
次の記事では、いくつかの乾物について説明し、アノテーション、auto_service、javapoet、その他のテクノロジを介したコンポーネント化でのプロジェクト アクセスを実現します。