マニフェストファイルの整理


マニフェストとは?


Manifestは、Androidアプリケーションに関する様々な情報を記録したアプリケーションリストです.一番上のフォルダには、アプリケーションが実行される前にシステムが知っておくべき内容を定義するManifestファイルが必要です.
すなわち、アンドロイドシステムがアプリケーションコードを実行する前に確保する必要があるアプリケーションの必要情報を、システムに提供されるリストとして定義することができる.

4つのManifestコンポーネント


✔Intentとは?


アプリケーションコンポーネント間でタスクを実行する情報を渡します.AndroidはIntentを使用して、あるコンポーネントから別のコンポーネントを呼び出したいことを示します.4つのコンポーネントはIntentによってアクティブ化されます.

✔ Activity

<activity>
ユーザーインタフェース.1つのアプリケーションには少なくとも1つのアクティビティが必要です.マニフェストファイルに宣言されていないアクティビティは、システムも実行されません.

✔ Service

<service>
UIを使用してバックグラウンドタスクを実行しないコンポーネント.アクティビティがユーザが直接見る画面である場合、サービスはアクティビティ終了時にも正常に動作するように作成されるコンポーネントである.

✔ Broadcast Receiver

<receiver>
システム全体で、特定のイベントに応答する責任を負います.これらの動作は、Broadcast Receiverによって、バッテリの電力不足、スクリーンショット、ファイルのダウンロード完了などの応答を得ることができます.ただしBroadcast Receiver自体はイベントの確認のみを行い,ユーザに通知しない.開発者はnotification、Toastを使用してユーザーに通知する必要があります.

✔ Contents Provider

<provider>
アプリケーション内で使用可能なデータを共有するコンポーネントとして、アプリケーションはコンテンツプロバイダにアクセスするだけで必要なデータを取得できます.アプリケーションにデータを格納するときにデータベースを使用します.このデータベースは、アプリケーション以外のアプリケーションではアクセスできませんが、Content Provierの役割の1つは、外部アプリケーションがデータベースにアクセスするのを阻止し、データベース内の共有のみを許可することです.

Intent-Filter

<intent-filter>
テントは2種類あります.
  • は、呼び出す構成部品を示すことを明確に宣言する.
  • 暗黙的コンテンツ:呼び出すコンポーネントを正確に知るのではなく、コンテンツオブジェクトに呼び出すコンポーネントを見つけることができる情報を含む.
  • 暗黙的なコンテンツでどのコンポーネントを使用するかをユーザーに選択させようとする場合は、int-filterを使用する必要があります.アンドロイドシステムの内部では、多くのアプリケーションが大量のコンテンツを生成し、必要なコンテンツだけがIntent-Filterを必要とします.
    ✔なぜ暗示的な考えが必要なのか?
    自分で作成した構成部品であれば、その構成部品の名前を正確に知ることができますが、他の人が作成した構成部品の名前を知るのは難しいです.したがって、明示的なコンテンツ呼び出しは使用できません.
    参考資料:https://jitolit.tistory.com/112