コンポーネントとは?
状態:-
閲覧数:2,879
投稿日:2013-04-08
更新日:2013-04-10
コンポーネント(Component)
・部品あるいは成分を表す言葉
・分野によりその意味する内容は異なる(プログラムだけでなく、ハードウェアや組織の一部を指して用いられることもある)
「特定の機能を果たす単位」を意味する
※再利用を考え汎用開発されたもの
特徴
・それぞれ特定の機能を持っているが、基本的に単体では使用できず、他のプログラムと組み合わせて機能を実現、ないし追加するために用いられる(特定の機能を持つが単独では意味を持たないようなオブジェクトの一種、と言うこともできる)
違う用語で言い換えると?
・ソフトウェア部品
※コンピュータソフトウェアにおいて部品とは、「特定の機能を果たす単位」を意味する
・部品あるいは成分を表す言葉
・分野によりその意味する内容は異なる(プログラムだけでなく、ハードウェアや組織の一部を指して用いられることもある)
ソフトウェアにおけるコンポーネント
「特定の機能を果たす単位」を意味する
※再利用を考え汎用開発されたもの
特徴
・それぞれ特定の機能を持っているが、基本的に単体では使用できず、他のプログラムと組み合わせて機能を実現、ないし追加するために用いられる(特定の機能を持つが単独では意味を持たないようなオブジェクトの一種、と言うこともできる)
違う用語で言い換えると?
・ソフトウェア部品
※コンピュータソフトウェアにおいて部品とは、「特定の機能を果たす単位」を意味する
Androidにおけるコンポーネントとは?
Androidのコンポーネントと概念
4つのコンポーネント
・Androidは、4つのコンポーネント(特定の機能を果たす単位)で構成されている
1.アクティビティ
2.サービス
3.ブロードキャストレシーバ
4.コンテンツプロバイダ
※コンポーネント間でのデータのやりとりは「インテント(Intent)」を利用
※コンポーネントの中で最も利用頻度が高く、基本となるのはアクティビティ
※基本となるクラス≒コンポーネント
Androidアプリケーションの特徴
複数のコンポーネントから構成されており、必要に応じて個々に起動可能(エントリーポイントが存在しない)
・あるアプリケーションから別のアプリケーションの機能の一部(コンポーネント)を利用可能
・これは、全体を「必要に応じてアプリケーションの一部分をインスタンス化して実行するコンポーネント」で構成することで実現している
・具体的には、アプリケーションの一部分を、必要に応じて開始(Javaインスタンス化)している
・そのため、Andoroidアプリケーションにはmain関数のようなアプリケーション全体にアクセスするような単一のエントリーポイントが存在しない(他の一般的なOS向けアプリケーションと違い、それを起動するための1つの定まったエントリーポイントが存在しない)
1つのアプリケーションが、4つ全てを備える必要はない
・また、1つのアプリケーションが同じ種類のコンポーネントを複数含むことも可能
Androidにおける「コンポーネント」と「クラス」の関係
概要
・Androidにおける「コンポーネント」は、予め「クラス」化されている
5クラス
4つのコンポーネント
・Androidは、4つのコンポーネント(特定の機能を果たす単位)で構成されている
1.アクティビティ・Androidは、4つのコンポーネント(特定の機能を果たす単位)で構成されている
・画面を構成するコンポーネント
・MVC の Controller に相当
・Activityクラス
2.サービス
・バックグラウンドで動作するコンポーネントだが、基本はメインスレッドで動作
・IntentService と呼ばれる特殊な Service コンポーネントは、専用のワーカスレッドで動作
・Serviceクラス
3.ブロードキャストレシーバ
・アプリ全体や、端末全体に渡るメッセージ通知を受け取るコンポーネント
・Router のような役割を担う
・BroadcastReceiverクラス
4.コンテンツプロバイダ
・アプリケーションが保有するデータへのアクセス窓口となるインタフェース
・多くはSQLiteデータベースへの窓口とするために用いられるが、この他にも、クラウド上のデータへのアクセスや、その他ストレージ上の永続化データへの窓口となることも可能
・ContentProviderというインタフェースを介することで、他のアプリからもデータソースへアクセスしたり、変更したりすることができるようになる
・ContentProviderクラス
5.インテント
※コンポーネント間でのデータのやりとりは「インテント(Intent)」を利用
・Intentクラス