Ali P8のボスは、Jetpackコレクションを社内で整理しています。天井レベルのアーキテクチャコンポーネントへの最速のガイド!

ここに画像の説明を挿入

前書き

Jetpackは、開発者が高品質のアプリケーションをより簡単に作成するのに役立つライブラリ、ツール、およびガイドのセットです。これらのコンポーネントは、開発者がベストプラクティスに従い、定型コードを記述しないようにし、複雑なタスクを簡素化して、開発者が必要なコードに集中できるようにするのに役立ちます。

Android Jetpackコンポーネントの役割は何ですか?

  • ナビゲーション:フラグメントの切り替えを管理するために使用されるツールクラス。視覚化、バインド可能なコントロール、およびアニメーションのサポートがその利点です。
  • データバインディング:言うまでもなく、MVVMの作成を加速することは誰もが知っています。
  • ライフサイクル:アクティビティとフラグメントのライフサイクルを処理できる重要な理由です。AndroidXのフラグメントとアクティビティは、ライフサイクルのデフォルトのサポートを提供しています。
  • ViewModel:MVVMのViewModelレイヤーとして、ライフサイクルを意識した処理とUI関連のデータがあります。
  • LiveData:RxJavaと同様に、データを監視します。利点は、ライフサイクルを処理する必要がないこと、メモリリークなどがないことです。
  • 部屋:強力なORMデータベースフレームワーク。
  • ページング:RecyclerViewをサポートする使いやすいデータページングライブラリ。WorkManager:柔軟で、シンプルで、遅延があり、実行が保証されたバックグラウンドタスク処理ライブラリ。

AndroidJetpackを選ぶ理由

AndroidJetpackを選択する理由は次のとおりです。

  • 一緒に使用する方が便利です。AndroidJetpackコンポーネントの多くのライブラリが他のライブラリのサポートを提供するため、たとえば、RoomとPagingはLiveDataのサポートを提供します。
  • 下位互換性:基本的に、すべてのコンポーネントが下位バージョンのサポートを提供します。
  • RxJavaのサポート:RxJavaの強力なエコロジカル環境により、ほとんどすべてのデータ関連コンポーネントがRxJavaのサポートを提供します。
  • コードの量を減らす:データバインディング+ ViewModel + LiveDataまたはRxJavaで構築されたMVVMモードは、コードの量を大幅に減らすことができ、UIをアクティブに更新する必要がなく、通常のMVPモードよりも便利です。
  • バンドルする必要はありません:Android Jetpackシリーズのコンポーネントはバンドルなしで使用できます。1つのライブラリのみを使用する場合は、1つのライブラリのみに依存できます。

Android Jetpackを学ぶ必要がありますか?

学ぶ、学ぶ必要があります。Googleにとって、Android Jetpackは、Androidエコシステムを再編成および統合するという彼らの決意の表れです。AndroidJetpackによって表示されるコンテンツは、Googleが拡張および維持したい方向でもあります。サードパーティのライブラリの選択に長い間苦労してきたAndroid開発者の大多数にとって、これはGoogleが提供するビーコンです。

おそらく、Android Jetpackシリーズのライブラリの中には、仕事の最初の選択肢になるほど成熟していないものもありますが、Android Jetpackコンポーネントを詳細に研究することで、Googleの大物とコミュニケーションを取り、毎日のアイデアを引き出す機会が得られます。開発。

学ぶ方法は?

学習教材が不足しているために、このアリババの内部Jetpackコレクションを入門から習熟まで見つけた場合、チュートリアルは理解しやすく、基本的な知識と高度なスキルの両方の例が豊富で、読者が始めるのに役立ちますジェットパックのひまわりの本を学ぶのはあなたです。

「入門から習熟までのJetpackアーキテクチャコンポーネント」のフルセットが必要な場合は、記事の最後に直接アクセスして無料で入手してください〜

AndroidJetpack-ナビゲーション

ナビゲーションはナビゲーションとして直接変換されます。これはAndroidJetpackコンポーネントの1つであり、単一のアクティビティアプリケーションを推奨されるアーキテクチャにします。アプリケーションのFragmentページのジャンプはナビゲーションによって処理され、開発者はFragmentTransactionおよび関連する遷移アニメーションの複雑さに対処する必要はありません。

目次
ここに画像の説明を挿入

実際の戦闘
ここに画像の説明を挿入

AndroidJetpack-データバインディング

データバインディングは、コーディングメソッドの代わりに宣言型メソッドを使用してUIコントロールとデータソースをバインドするサポートライブラリです。
通常、UIフレームワークレイヤーのメソッドを呼び出して、アクティビティでビューを宣言します。たとえば、次のコードはfindViewById()を呼び出して、TextViewコントロールを宣言し、それをviewModelのuserNameプロパティにバインドします。

findViewById<TextView>(R.id.sample_text).apply {
    text = viewModel.userName
}

次のコードは、データバインディングを使用して、レイアウト内のTextViewのテスト属性に値を直接割り当てる方法を示しています。これの利点は、上記の例のようにJavaコードを呼び出す必要がないことです。代入式で使用される構文は@ {}であることに注意してください。

<TextView
    android:text="@{viewmodel.userName}" />

UIコントロールをレイアウトに直接バインドすると、アクティビティでのUIフレームワークメソッドの呼び出しを減らすことができます。これにより、コードがより簡潔になり、保守が容易になります。また、アプリのパフォーマンスを向上させ、メモリリークやnullポインタの例外を回避できます。
目次
ここに画像の説明を挿入

実際の戦闘
ここに画像の説明を挿入

AndroidJetpack-ViewModelとLiveData

ViewModelビューとロジックは分離されています。ActivityまたはFragment、UI表示部分のみを担当します。特定のネットワーク要求またはデータベース操作がViewModel責任を負います。MVPパターンのPresenterレイヤーていますViewModelこのクラスは、ライフサイクル指向の方法でインターフェイス関連のデータを格納および管理するように設計されています。画面の回転などの構成変更後もデータを保持できるようにします。画面の回転などの構成アイテムを変更すると、アクティビティが破棄されて再構築されることがわかっています。この時点で、アクティビティによって保持されているデータは失わViewModelれ、破棄されないため、プロセスでデータを保存するのに役立ちます。また潜在的なメモリリークを心配するかどうかに関係なく通信を通じてレイヤーのインスタンスをViewModel保持しないでくださいViewLiveDataActivityFragment

LiveDataこれは、監視可能なデータストレージクラスです。従来の観察クラスとは異なり、LiveDataは、それが他のアプリケーションコンポーネントのライフサイクルを(例えば、以下のことを意味し、ライフサイクルの意識を持っているActivityFragmentまたはService)。この認識機能によりLiveData、データソースが変更されたときに、そのオブザーバーにUIインターフェイスを更新するように通知されます。同時に、アクティブ状態のオブザーバーにインターフェースを更新するよう通知するだけです。オブザーバーの状態がPausedor状態のDestroyed場合、通知は受信されません。したがって、メモリリークについて心配する必要はありません。
ディレクトリ
ここに画像の説明を挿入
実際の戦闘
ここに画像の説明を挿入

AndroidJetpack-部屋

RoomはJetpackコンポーネントライブラリのメンバーであり、ORMライブラリに属しています。主にSqliteを抽象化して、開発者によるデータベースの操作を簡素化します。Roomは、コンパイル時の構文チェックをサポートし、LiveDataを返すことをサポートします。

依存関係を追加する

アプリのbuild.gradleに次の依存関係を追加します。

def room_version = "2.2.0-rc01"
    
implementation "androidx.room:room-runtime:$room_version"
// For Kotlin use kapt instead of annotationProcessor (注意这个注释)
kapt "androidx.room:room-compiler:$room_version"

プロジェクトがKotlin言語を使用して開発されている場合は、room-compilerを追加するときにkaptキーワードを使用し、Java言語の開発にはannotationProcessorキーを使用します。そうしないと、アクセスエラーが発生します。
目次
ここに画像の説明を挿入

実際の戦闘
ここに画像の説明を挿入

AndroidJetpack-ページング

多くのアプリケーションは、多数のアイテムを含むデータソースからデータを取得しますが、一度に表示するのはデータのごく一部にすぎません。アプリケーションに表示されるデータのロードは、大規模でコストがかかる可能性があるため、一度に大量のデータをダウンロード、作成、または提示することは避けてください。アプリケーションでのデータの段階的な読み込みを容易にするために、Googleメソッドはこのコンポーネントを提供します。このコンポーネントは簡単に読み込むことができ、RecyclerViewを使用して大規模なデータセットを高速で無限にスクロールできます。ローカルストレージ、ネットワーク、またはその両方からページングデータをロードでき、コンテンツのロード方法をカスタマイズできます。Room、LiveData、RxJavaで使用できます。

ページングLibrayは、DataSource、PagedList、PagedAdapterの3つの部分に分かれています。

ディレクトリ
ここに画像の説明を挿入
実際の戦闘
ここに画像の説明を挿入

AndroidJetpack-WorkManger

WorkManagerは、AndroidJetpackでバックグラウンドタスクを管理するためのコンポーネントです。

一般的な使用シナリオ:1。ログまたは分析データをバックエンドサービスに送信します2.アプリケーションデータをサーバーと定期的に同期します

WorkManager APIを使用して、バックグラウンドタスクを簡単にスケジュールします。遅延して実行でき(つまり、すぐに実行する必要がない)、アプリケーションが終了したとき(プロセスが閉じられていないとき)またはアプリケーションが再起動したときに確実に実行できるタスク。

目次

実際の戦闘
ここに画像の説明を挿入

AndroidJetpackアーキテクチャコンポーネントのライフサイクル

アプリケーションのセキュリティについては、バックグラウンドからフォアグラウンドに切り替える際のソフトウェア確認などのセキュリティ確認処理が必要になることがよくあります。過去の場合、この要件を達成することは実際には非常に困難です。しかし、Googleがライフサイクルコンポーネントをリリースして以来、この要件ははるかに単純になりました。バックグラウンドからフォアグラウンドに戻るライフサイクルの認識に加えて、このコンポーネントを使用して、複雑なライフサイクル操作をより簡単に実装できます。

目次
ここに画像の説明を挿入

実際の戦闘
ここに画像の説明を挿入

Android JetpackComposeの最も包括的なガイド

Jetpack Composeは、ネイティブAndroid UIを構築するための最新のツールキットです。宣言型プログラミングモデルに基づいているため、UIの外観を簡単に説明でき、残りはComposeが処理します。状態が変わると、UIが更新されます。自動的に。ComposeはKotlin上に構築されているため、Javaプログラミング言語と完全に相互運用可能であり、すべてのAndroidJetpackAPIに直接アクセスできます。また、既存のUIツールキットと完全に互換性があるため、元のビューと新しいビューを組み合わせて、マテリアルとアニメーションを使用して最初からデザインすることができます。

ディレクトリ
ここに画像の説明を挿入
実際の戦闘
ここに画像の説明を挿入

結論

記事の長さが限られているため、コンテンツの一部のみが表示されます。このメモには、Android Jetpackアーキテクチャコンポーネント(アプリの起動、最新のAndroid Jetpackコンポーネントの紹介、実際のAndroid Jetpackプロジェクトの戦闘(WanAndroidクライアントのJetpackバージョンのビルド0)、実際のプロジェクトの戦闘など。

必要な場合は、私の[Github]で無料読んだりダウンロードしたりできます。

ここに画像の説明を挿入

無料ダウンロードをクリックして入手してください

おすすめ

転載: blog.csdn.net/Androiddddd/article/details/111678798
おすすめ