モバイルでのモジュラーアプリケーション開発のAndroidのコンポーネント

記事のディレクトリ


モバイルアプリケーションでは、アプリケーション自体と近い、変更のための需要の日々の発展とユーザーが避けられないフリップフロップであるため、彼らは、プロセスまたはプロセスの形式主義を標準化文句を言う場合は特に、高速かつ緩い遊ぶ、
その利点が繰り返されていないもののモジュラーコンポーネントにこれだけ補足点優位に:レノボを言っ減らします

ライナス:読むクソソースコード

私たちの究極の目標は、だけで切り離されていません。繰り返し動画レンガによるレコードまでの時間を持っていなかった初期設計から、コンポーネント/モジュールに完全な自由を与えられた過度の制約を軽減するために簡略化フレームワークは、二年以上されている、
記事では、我々は非常にあります良いアイデアを持って、スティッククソコードしないようにしよう良いが、自分のニーズに合わせて実現。
コンポーネントモジュール
リファレンスソースウィキペディア、本明細書で定義されることを再度異なる意見のコンポーネントおよびモジュールを定義するための多くのオンライン記事の観点、及び
ソフトウェアコンポーネント(ソフトウェアコンポーネント、CBSE呼ぶ**)または開発コンポーネント(コンポーネントベースベース)CBDと呼ば開発は、ソフトウェア開発パラダイムです。これは、既存のコンポーネントを再利用することにより、コンポーネントオブジェクトモデルの支援を受けて、今で実用的な研究の焦点のソフトウェアアプリケーションソフトウェアの再利用理論で、ソフトウェア開発者は、「プラグアンドプレイは、」迅速に構築することができます。これは、効率を改善し、時間とコストを節約し、より標準化を生成することができるだけでなく、より信頼性の高いアプリケーション・ソフトウェア・
モジュールは、システム、装置、またはプログラムの完全な機能を構成するために使用することができ、基本的な機能コンポーネントの数で特定の機能コンポーネントを指し。モジュールは、通常、同じ論理的なプロセスを持っているか、その機能や使用を適応させることができ、その構成要素を変更します。
成分和成分は、ツールの機能的特性および機能的特性を有するモジュールモジュールシステムです。例えば、アセンブリフレームをジェットパック。
モジュールとモデルに基づいて、または別々に扱わ。
単純なものから複雑なものまで

補完のドワーフ、安心の長さ

任意のシステムは、簡単なものから複雑なものまで進化構成されています。生態系に似ています。安定かつ強力なシステムが次第に複雑なシステムに単純なものから進化しています。単純なシステムは、変性することができる、より高いレベルのシステムを必要と進化抵抗を持っている必要があるかもしれません。そして必要な要素の時間発展
AndroidXジェットパック、弾性部材フレームワーク進化および分解の両方から始まります。目的に、プレゼンテーション層を分離表示層は、動作は、ユーザの需要ビデオ再生、早送り、一時停止、音、明るさとして知られている、ビュー抽出VM /モデル成分を確立されている一般的な機能層の形で繰り返される、UI層へのインタフェースを提供するが、UI層、再び、書き込みシークバー、ボタンやその他のUIコントロール、よく見るがシークバーを、また、VMのコンポーネントがビュー層、VMによって使用されたときに直接渡されるこれらのUIコントロールが含まれていてもよいかどうか、合意された下品に自分の習慣的な応答のいくつかを持っていますそして層だけでクリックして、シークバーと対話するためにButtonコントロールを進める、とUI層は、コントロールは、コントロールが場所を気にしないものの中に渡された気にしないで、これらは、UIレイヤその全てのものがあります。実際には、対応するインタフェース制御を渡すことができますが、コントロールは、現在の世代に進化していません。
モデルモデル層はビジネスの実体的要件を作りました。ビデオプレーヤーなど、どのようなプレーヤー、内蔵されたサードパーティmondelによって引き継が。ユーザーのニーズは、ビュー層の要求、UIを更新するVMモデル層、VM及び更新データによる処理結果こと、ビュープロセスにモデルを開始する要求を処理するVM層から開始されます。
その後完成しました。プレーヤーの交換がない限り、追加機能(プレビューフレーム、GIFインターセプト)VMを追加し、Mコードを更新しない。タイルは、単にUI輸送取り扱いを複製します。
当社の部品の目標
もちろんのは、汚染を防止するためのコードを切り離され、コンパイルまで簡単にデバッグ速度をデバッグする第二に、単一のモジュール、効率を向上させることに焦点を当て、その後、フレームは、過度に自由内のモジュールにモジュールを制限し、ない侵入しないようにしようで軽量、エネルギーすぐにHello Worldの、その基本的な機能を完了構築、
最終結果
プライベートMavenの例外を投影するAARを公開し、これらのクラスの具体的な実装はカーネルパッケージに実装されている少量しか基底クラスのインタフェースを露出したコアを保護するために、外側コアは、外側コア構成デベロッパー版からカーネルの特定のバージョンに依存して混乱することができ、外核のパッケージクラスのみの少量と少量のコード;

ネットワーク要求
//ログイン要求
をクリックし(){無効プライベート
getViewModel(LoginViewModel.class)
.sendAction(新新でrequestAction()
.setTipsArgs(新新VmTipsArgs.Builder()。TipMessage( "要求が失敗した").build()))。
doOnData((アクション、データ) - > {
、データAppLog.d(TAG、 "ログインに成功= doOnData1で開始する");
showToast( "ログインに成功1。" +データ);
})
.doOnData((アクション、データ) - > {
AppLog.d(TAG、 "ログインに成功= doOnData2で開始する"、データ);
showToast( "ログインに成功2" +データ);
})
.doOnDone(アクション- > {
AppLog.dは(TAG、 "開始する登録完了" );
showToast( "登録完了");
})
.doOnListener(アクション- > {
AppLog.d(TAG、 "開始...ログをロード");
showToast( "ローディング...");
})
.doOnDone(アクション- > {
AppLog.d(TAG、 "登録完了2を開始");
})
.doOnError((アクション、E) - > {
AppLog.d(TAG、 "ログインに失敗しました")が;
})
;
}
コードログコピー
MainActivity doOnListenerログインを開始します...ロード
MainActivity = doOnData成功ログインdoOnData1を開始「{UID:123}」
MainActivity = doOnDataが成功したログインdoOnData2を開始「{UID:123}」
。MainActivity doOnDoneが登録完了を開始する1
MainActivity doOnDone 2開始する登録完了
解決しようとするモジュール式のアセンブリのコードをコピー問題

分離コンポーネント、モジュールは、個々のモジュールをデバッグすることができ、分離;
心のうち視力の他の誰かのコード、唯一のフレームワークコードとハウジング当たりコードのデバッグを参照して、(分離成分:機能の構成部品が別の構成要素Bによってスローされてもよいです完全;独立したモジュール:モジュールが持つ独自の小さなエコIここでは、廃棄物の変換時間を統一デバッグシェルを追加するのではなく、アプリを変換するために、二つのリストファイルを記述する必要はありません)

[レジスタモジュール初期化コードのインスツルメンテーション、反射初期化、モジュールの初期化は、ASMザ推奨ウィジェットを登録します

コンポーネント間/モジュールは互いに呼び出し、データ転送[モジュラーイベント、LiveDataバス、ローカルブロードキャスト、等]との通信します

イベントに応答して(オーディオビジュアル機能部品)を他のコンポーネントに通知する方法のコンポーネント/モジュール

切り離すために、コンポーネント間直接【ARouter]お互いを呼び出さないため、インターフェースモジュールとの間ジャンプ

取得するためのプロジェクトと表示フラグメントの主なコンポーネント

どのようにコンポーネント間の統合とデバッグ

データまたはサービスを得る(タスク、復帰の完了を運ぶために宅配便で送信される)他の成分

リソース命名リピートは、それ自体が冗長なリソースを繰り返し

若いアセンブリ上避け過度の依存、コンポーネント間のサードパーティの未熟に回避依存する基本コンポーネント

その他...

例としては、前記3,4,5,6-サービスシナリオを含む:
複数のモジュールは、UIは、単一のインタフェースで表示合成する必要がある、データが関与する、モジュール間のデータ転送を更新し、そしてお互いの問題を呼び出します

公開された60元の記事 ウォンの賞賛0 ビュー5675

おすすめ

転載: blog.csdn.net/chunzhenwang/article/details/104407722