Google の公式ドキュメントでは、Jetpack は次のように定義されています。
Jetpack 是一套组件库,可帮助开发人员遵循最佳实践,减少样板代码并编写可在 Android 版本和设备上
一致工作的代码,以便开发人员可以专注于他们关心的代码。
定義によれば、実際には 2 つのコア ポイントを抽出できます。
- コンポーネント ライブラリのセットです。(単一のコンポーネント ライブラリではなく、多くの異なるコンポーネント ライブラリで構成されていることを示します)
- Jetpack を使用すると、さまざまな Android バージョンやさまざまなデバイス間で一貫した動作するコードを実現できます。(これは、一貫性のない Android バージョンや異なるデバイスによって引き起こされる違いや互換性の問題を Jetpack が簡単に処理できることを示しています)
以下に Jetpack のコンポーネントを簡単に紹介します。
LifeCycleには LifeCycle コンポーネントがあり、システム コンポーネント (アクティビティ、フラグメント、サービス、アプリケーション) のライフサイクルが変化すると、カスタム コンポーネントに適切なタイミングで通知できます。LifeCycle はカスタム コンポーネントとシステム コンポーネントをさらに分離します
ナビゲーションは、ページ ジャンプ、パラメータ転送、アニメーション効果の設定、アプリ バーの設定など、ナビゲーション マップに必要なすべてを処理します。ナビゲーション グラフを使用すると、私たちは「神の視点」に立って、アプリケーションのすべてのインターフェイス間の関係を見渡すことができます。
ViewModel は、 View と Model の間のビジネス ロジックを処理する責任があります。UI が必要とするデータを直接担当し、ビューとデータを分離できます。また、ViewModel はライフサイクルに関連しており、画面回転によるインターフェースの再作成によるデータ再取得の問題にも自動で対応します。
LiveData LiveData は、MVVM アーキテクチャのレイヤー間で重要な役割を果たします。データが変更されると、LiveData を通じてデータの購読者に通知できます。
Room Google の公式 ORM データベースは、LiveData をネイティブでサポートします。Livedata を使用すると、Room データベース内のデータが変更されたときに、データベースからデータを再取得することなく、データ サブスクライバーにタイムリーに通知できるようになります。
WorkManager は、タイムリーに完了する必要のないアプリケーション内のタスクに対して統合ソリューションを提供します。
DataBinding は、 UI インターフェイスをさらに分離します。DataBinding の登場により、findViewById は存在しなくなり、レイアウト ファイルがより多くの作業を引き受けるようになり、さらには単純なビジネス ロジックも引き受けるようになり、Activity と Fragment の作業負荷が軽減されます。
ページングは、 3 つの一般的なページング メカニズムに対する統合ソリューションを提供し、エンジニアがビジネス コードに多くのエネルギーを集中できるようにします。
参考資料
1 https://zhuanlan.zhihu.com/p/334350927
2 Android Jetpack アプリケーション ガイド (Ye Kun 著)