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

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

Nov 24, 2022 pm 07:14 PM
android

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 サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

新しいレポートは、噂のSamsung Galaxy S25、Galaxy S25 Plus、Galaxy S25 Ultraのカメラアップグレードのひどい評価を提供します 新しいレポートは、噂のSamsung Galaxy S25、Galaxy S25 Plus、Galaxy S25 Ultraのカメラアップグレードのひどい評価を提供します Sep 12, 2024 pm 12:23 PM

ここ数日、Ice Universeは、サムスンの次期主力スマートフォンであると広く信じられているGalaxy S25 Ultraの詳細を着実に明らかにしている。とりわけ、リーカーはサムスンがカメラのアップグレードを1つだけ計画していると主張した

Samsung Galaxy S25 Ultraの最初のレンダリング画像がリークされ、噂のデザイン変更が明らかに Samsung Galaxy S25 Ultraの最初のレンダリング画像がリークされ、噂のデザイン変更が明らかに Sep 11, 2024 am 06:37 AM

OnLeaks は、X (旧 Twitter) のフォロワーから 4,000 ドル以上を集めようとして失敗した数日後、Android Headlines と提携して Galaxy S25 Ultra のファーストルックを提供しました。コンテキストとして、h の下に埋め込まれたレンダリング イメージ

IFA 2024 | TCLのNXTPAPER 14は、パフォーマンスではGalaxy Tab S10 Ultraに匹敵しませんが、サイズではほぼ匹敵します IFA 2024 | TCLのNXTPAPER 14は、パフォーマンスではGalaxy Tab S10 Ultraに匹敵しませんが、サイズではほぼ匹敵します Sep 07, 2024 am 06:35 AM

TCLは、2つの新しいスマートフォンの発表に加えて、NXTPAPER 14と呼ばれる新しいAndroidタブレットも発表しました。その巨大な画面サイズはセールスポイントの1つです。 NXTPAPER 14 は、TCL の代表的なブランドであるマット LCD パネルのバージョン 3.0 を搭載しています。

新しいレポートは、噂のSamsung Galaxy S25、Galaxy S25 Plus、Galaxy S25 Ultraのカメラアップグレードのひどい評価を提供します 新しいレポートは、噂のSamsung Galaxy S25、Galaxy S25 Plus、Galaxy S25 Ultraのカメラアップグレードのひどい評価を提供します Sep 12, 2024 pm 12:22 PM

ここ数日、Ice Universeは、サムスンの次期主力スマートフォンであると広く信じられているGalaxy S25 Ultraの詳細を着実に明らかにしている。とりわけ、リーカーはサムスンがカメラのアップグレードを1つだけ計画していると主張した

Vivo Y300 Pro は、7.69 mm のスリムなボディに 6,500 mAh のバッテリーを搭載 Vivo Y300 Pro は、7.69 mm のスリムなボディに 6,500 mAh のバッテリーを搭載 Sep 07, 2024 am 06:39 AM

Vivo Y300 Pro は完全に公開されたばかりで、大容量バッテリーを備えた最もスリムなミッドレンジ Android スマートフォンの 1 つです。正確に言うと、このスマートフォンの厚さはわずか 7.69 mm ですが、6,500 mAh のバッテリーを搭載しています。これは最近発売されたものと同じ容量です

Samsung Galaxy S24 FEは、4色と2つのメモリオプションで予想よりも低価格で発売されると請求されています Samsung Galaxy S24 FEは、4色と2つのメモリオプションで予想よりも低価格で発売されると請求されています Sep 12, 2024 pm 09:21 PM

サムスンは、ファンエディション(FE)スマートフォンシリーズをいつアップデートするかについて、まだ何のヒントも提供していない。現時点では、Galaxy S23 FE は 2023 年 10 月初めに発表された同社の最新版のままです。

Xiaomi Redmi Note 14 Pro Plusは、Light Hunter 800カメラを搭載した初のQualcomm Snapdragon 7s Gen 3スマートフォンとして登場します Xiaomi Redmi Note 14 Pro Plusは、Light Hunter 800カメラを搭載した初のQualcomm Snapdragon 7s Gen 3スマートフォンとして登場します Sep 27, 2024 am 06:23 AM

Redmi Note 14 Pro Plusは、昨年のRedmi Note 13 Pro Plus(Amazonで現在375ドル)の直接の後継者として正式に発表されました。予想通り、Redmi Note 14 Pro Plusは、Redmi Note 14およびRedmi Note 14 Proと並んでRedmi Note 14シリーズをリードします。李

Motorola Razr 50s は初期リークで新たな予算を折り畳める可能性があることを示す Motorola Razr 50s は初期リークで新たな予算を折り畳める可能性があることを示す Sep 07, 2024 am 09:35 AM

Motorola は今年数え切れないほどのデバイスをリリースしましたが、そのうち折りたたみ式デバイスは 2 つだけです。ちなみに、世界の大部分ではこのペアが Razr 50 および Razr 50 Ultra として受け入れられていますが、Motorola は北米では Razr 2024 および Razr 2 として提供しています。