ホームページ > よくある問題 > Android の 4 つの主要コンポーネントとは何ですか

Android の 4 つの主要コンポーネントとは何ですか

青灯夜游
リリース: 2022-11-24 19:14:44
オリジナル
45963 人が閲覧しました

4 つの主要なコンポーネント: 1. アクティビティ コンポーネント。これは別のウィンドウであり、プログラム フローは [アクティビティ] で実行する必要があるため、最も基本的なモジュールです。 2. サービスコンポーネントは、ユーザー指定の操作をバックグラウンドで完了するために使用されます。 3. コンテンツ プロバイダー コンポーネントは、すべてのアプリケーション用のコンテンツ ウィンドウを準備し、データベースとファイルを保持します。 4. ブロードキャスト レシーバー コンポーネントは、プログラム間で情報を送信するためのメカニズムであり、その機能は通知を受信または送信することです。

Android の 4 つの主要コンポーネントとは何ですか

#このチュートリアルの動作環境: Android 13 システム、Xiaomi 12 携帯電話。

Android の 4 つの主要コンポーネントは、アクティビティ、サービス、コンテンツ プロバイダー、およびブロードキャスト レシーバーです。

1. Android の 4 つの主要コンポーネントの詳細説明

1. アクティビティ

アクティビティ Android システムの基盤と見なすことができ、この基盤の上でのみ他の作業を実行できます、Android システムで実行されるすべてのプログラムは [アクティビティ] で実行する必要があるため、最も基本的なモジュールです。 。フレームやページとして機能し、各プログラムは複数の[アクティビティ]から構成されます。

(1) アクティビティは通常、別の画面 (ウィンドウ) です。

(2) アクティビティはインテントを通じて通信します。

(3) Android アプリケーションのすべてのアクティビティは、AndroidManifest.xml 構成ファイルで宣言する必要があります。宣言しないと、システムはアクティビティを認識または実行できません。

2. サービス

サービスは Android の非常に重要なコンポーネントです。そのステータスと優先度はアクティビティと似ています。ただし、サービスは単独で実行できません。実行されるだけです。 Android ではバックグラウンドで。その機能は、Android の他のコンポーネントと対話することであり、たとえば、携帯電話で音楽プレーヤーを開いてバックグラウンドに置くと、このときに再生される音楽はサービスによって制御されます。

1) サービスは、ユーザー指定の操作をバックグラウンドで完了するために使用されます。サービスは 2 つのタイプに分けられます。

  • started (開始済み): アプリケーション コンポーネント (アクティビティなど) が startService() メソッドを呼び出してサービスを開始すると、サービスは開始済み状態になります。州。

  • bound (バインディング): アプリケーション コンポーネントが、bindService() メソッドを呼び出してサービスにバインドすると、サービスはバインドされた状態になります。

2) startService() と bindingService() の違い:

  • started サービス (開始サービス) は、呼び出される startService() メソッドです。他のコンポーネントによって開始されました。これにより、サービスの onStartCommand() メソッドが呼び出されます。サービスが開始状態にある場合、そのライフサイクルはサービスを開始したコンポーネントから独立しており、サービスを開始したコンポーネントが破棄された場合でも、バックグラウンドで無期限に実行できます。したがって、タスクの完了後に stopSelf() メソッドを呼び出すか、他のコンポーネントで stopService() メソッドを呼び出して、サービスを停止する必要があります。

  • サービスを有効にするには、bindService() メソッドを使用します。呼び出し元とサービスはバインドされます。呼び出し元が終了すると、サービスは終了します。「死」の特性。

3) 開発者は、 タグを使用して、アプリケーション構成ファイル内のすべてのサービスを宣言する必要があります。

4) サービスは通常、バックグラウンドで実行され、ユーザーと対話する必要がないため、サービス コンポーネントにはグラフィカル ユーザー インターフェイスがありません。サービス コンポーネントはサービスの基本クラスを継承する必要があります。サービス コンポーネントは通常、他のコンポーネントにバックグラウンド サービスを提供したり、他のコンポーネントの実行ステータスを監視したりするために使用されます。

3. コンテンツ プロバイダー (コンテンツ プロバイダー)

コンテンツ プロバイダー コンポーネントは、サードパーティ アプリケーション用に特別に設計されており、非常に柔軟で非常に重要です。すべてのアプリケーション用のコンテンツ ウィンドウを準備し、データベースとファイルを保持します。その機能は、これらのサードパーティ ソフトウェアを使用するときに、内部のデータに効果的にアクセスして保護できることです。

1) Android プラットフォームは、アプリケーションの指定されたデータ セットを他のアプリケーションに提供するコンテンツ プロバイダーを提供します。他のアプリケーションは、ContentResolver クラスを通じてこのコンテンツ プロバイダーからデータを取得または保存できます。

2) コンテンツ プロバイダーは、複数のアプリケーション間でデータを共有する必要がある場合にのみ必要です。たとえば、アドレス帳データは複数のアプリケーションで使用されるため、コンテンツ プロバイダーに保存する必要があります。その利点は、データへのアクセス方法を統一できることです。

3) ContentProvider はデータ共有を実装します。 ContentProvider は、データを保存および取得し、すべてのアプリケーションから見えるようにするために使用されます。 Android はすべてのアプリケーションがアクセスできる共通のストレージ領域を提供していないため、これが異なるアプリケーション間でデータを共有する唯一の方法です。

4) 開発者は ContentProvider クラスのオブジェクトを直接使用することはなく、ほとんどの場合、ContentResolver オブジェクトを通じて ContentProvider に対する操作を実装します。

5) ContentProvider は、データ セットを一意に識別するために URI を使用します。ここでの URI には content:// という接頭辞が付けられ、データが ContentProvider によって管理されていることを示します。

4. 放送受信機

Android システムでは、ブロードキャスト レシーバーは直接目には見えませんが、プログラム間で情報を送信するためのメカニズムであり、その機能は通知を受信または送信することです。平たく言えば、ブロードキャスト受信機は配信コンポーネントに似ており、情報を受信し、フィルタリングして応答することもできます。

1) アプリケーションはこれを使用して外部イベントをフィルターし、関心のある外部イベント (電話がかかってきたときやデータ ネットワークが利用可能なときなど) のみを受信して​​応答することができます。放送受信機にはユーザー インターフェイスがありません。ただし、受信した情報に応じてアクティビティやサービスを開始したり、NotificationManager を使用してユーザーに通知したりできます。通知は、バックライトの点滅、振動、音の再生など、ユーザーの注意を引くためにさまざまな方法で使用できます。一般に、ステータス バーに永続的なアイコンを配置し、ユーザーが開いてメッセージを取得できるようにします。

2) ブロードキャスト受信機の登録には、プログラムへの動的登録と AndroidManifest ファイルへの静的登録の 2 つの方法があります。

3) 動的に登録されたブロードキャスト受信機の特徴は、登録に使用したアクティビティがオフになるとブロードキャストが無効になることです。静的登録では、放送受信機の電源が入っているかどうかを気にする必要がなく、機器の電源が入っていれば放送受信機の電源もオンになります。つまり、アプリ自体が起動していなくても、アプリがサブスクライブしたブロードキャストがトリガーされると影響を受けます。

# 2. Android の 4 つの主要コンポーネントの概要:

#1. 4 つの主要コンポーネントの登録

4 主要な基本コンポーネントは使用する前に登録する必要があり、各アクティビティ、サービス、コンテンツ プロバイダーは AndroidManifest ファイルで設定する必要があります。 AndroidManifest ファイルで宣言されていないアクティビティ、サービス、およびコンテンツ プロバイダーはシステムに表示されないため、使用できません。ブロードキャスト レシーバーの登録は、静的登録 (AndroidManifest ファイルで構成) と、コードによる動的作成および Context.registerReceiver() の呼び出しによるシステムへの登録に分けられます。 AndroidManifest ファイルで設定されたブロードキャスト レシーバーは、システムの起動時にアクティブなままであり、対象のブロードキャストが受信されている限り (プログラムが実行されていない場合でも) トリガーされることに注意してください。

2. 4 つの主要コンポーネントのアクティブ化

コンテンツ プロバイダーのアクティブ化: ContentResolver からのリクエストを受信した後、コンテンツ プロバイダーがアクティブ化されます。他の 3 つのコンポーネントであるアクティビティ、サービス、およびブロードキャスト レシーバーは、インテントと呼ばれる非同期メッセージによってアクティブ化されます。

3. 4 つの主要コンポーネントの終了

コンテンツ プロバイダーは、ContentResolver からのリクエストに応答してのみアクティブ化されます。ブロードキャスト レシーバーは、ブロードキャスト メッセージに応答してのみアクティブになります。したがって、これらのコンポーネントを明示的に閉じる必要はありません。アクティビティの終了: アクティビティの終了() メソッドを呼び出すことで、アクティビティを終了できます。サービスのシャットダウン: startService() メソッドで開始されたサービスの場合は、サービスをシャットダウンするために Context.stopService() メソッドを呼び出す必要があります。bindService() メソッドを使用して開始されたサービスの場合は、Contex.unbindService() メソッドを呼び出してサービスをシャットダウンする必要があります。サービスをシャットダウンします。

4. Android のタスク (アクティビティ スタック)

a) タスクは実際にはアクティビティのスタックであり、1 つまたは複数のアクティビティで構成されており、それらが集まって 1 つのタスクを完了します。完全なユーザーエクスペリエンス。スタックの一番下はタスク全体を開始するアクティビティであり、スタックの一番上はユーザーが操作できる現在実行中のアクティビティです。あるアクティビティが別のアクティビティを開始すると、新しいアクティビティがスタックにプッシュされ、現在のアクティビティになります。ランニングアクティビティ。以前のアクティビティはスタックに残ります。ユーザーが BACK キーを押すと、現在のアクティビティがスタックからポップされ、前のアクティビティが現在実行中のアクティビティに戻ります。スタックに保存されるものは実際にはオブジェクトであり、スタック内のアクティビティは再配置されることはなく、プッシュまたはポップされるだけです。

b) タスク内のすべてのアクティビティは全体として移動します。タスク全体 (つまり、アクティビティ スタック) をフォアグラウンドに移動したり、バックグラウンドに後退させたりすることができます。

c) Android システムはマルチタスク (マルチタスク) オペレーティング システムであり、携帯電話で音楽を聴きながら、他の複数のプログラムを実行できます。追加のアプリケーションが実行されるたびに、より多くのシステム メモリが消費されます。同時に実行されるプログラムが多すぎる場合、または閉じられたプログラムがメモリを正しく解放しない場合、システムの動作がどんどん遅くなったり、不安定になったりすることがあります。この問題を解決するために、Android ではライフサイクルという新しいメカニズムが導入されました。

関連知識の詳細については、

FAQ

列をご覧ください。

以上がAndroid の 4 つの主要コンポーネントとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート