読者です 読者をやめる 読者になる 読者になる

Androidのコンポーネントって何?

エントリーポイント

エントリーポイントとは、プログラムの実行を開始する場所のことを言う。
多くのプログラミング言語では、mainと呼ばれる関数やメソッドを持っており、そこから処理が始まる。いわゆるこれがエントリーポイントである。

f:id:tmyhri:20170305160420p:plain

しかし、Androidアプリはmainのような単一のエントリーポイントではなく、
複数のエントリーポイントを持つことができる。

 

コンポーネント

複数のエントリーポイントを持つことを可能にしているのがコンポーネントである。
コンポーネントには以下の4種類がある。

  • アクティビティ

  • サービス

  • コンテントプロバイダ

  • ブロードキャストレシーバ

これらがそれぞれエントリーポイントとしての役割を持つことができる。
それにより状況に応じてスタートする画面を変更したり、別のアプリのコンポーネントを呼び出すことができる。つまり、Andoridアプリは複数のコンポーネントにより構成されている。

f:id:tmyhri:20170305031945p:plain

アクティビティ

アクティビティ(Activity)は、アプリの画面を表示するためのコンポーネントである。各アクティビティには、ユーザーインターフェースを表示するウィンドウがあり、他のコンポーネントを呼び出す機能などもある。


サービス

サービス(Service)は、アクティビティのようなユーザーインターフェースを持たず、バックグラウンドで動作するコンポーネントである。時間がかかる処理や、ユーザーが画面を離れても処理を続けてほしいときなどに利用する。


コンテントプロバイダ

コンテントプロバイダ(ContentProvider)は、アプリのデータへアクセスできるようにするためのコンポーネントである。データはSQLiteデータベースやファイルで保存されているものなどがあり、ユーザーはデータの実体を意識することなく操作することができる。

 

ブロードキャストレシーバ

ブロードキャストレシーバ(BroadcastReceiver)は、ブロードキャストされたインテントを受信し、それに対する処理を行うコンポーネントである。例えば、バッテリーが少なくなったこと、日付が変わったこと、ネットワークの接続状態が変わったことなどがこれにあたる。