---
# System prepended metadata

title: Android アプリの基礎 2021-07-31
tags: [アプリの基礎, Android]

---

---
lang: ja-jp
breaks: true
---
# Android アプリの基礎 2021-07-31

> アプリの基礎
> https://developer.android.com/guide/components/fundamentals?hl=ja

## アクティビティ

* ユーザーとやり取りするためのエントリ ポイント
* ユーザーの現在の操作内容（画面の表示）を追跡。
* ユーザーが再度アクセスする可能性があるものを検知し、それらの優先順位を上げてプロセスを維持
* ユーザーが以前の状態を復元したアクティビティに戻れるように支援。
* ユーザーフローをアプリが実装する手段と、システムがそれらのフローを連携させるための手段を提供
* アクティビティは Activity クラスのサブクラスとして実装します。

## サービス

* アプリをバックグラウンドで実行し続けるための汎用エントリ ポイントです。
* 長期間の操作やリモート プロセスを処理するためにバックグラウンドで実行されるコンポーネントです。
* サービスにはユーザー インターフェースがありません。
* アクティビティなどの他のコンポーネントが、サービスを開始して実行したり、サービスとやり取りするためにサービスにバインドしたりすることができます。
* サービスは Service のサブクラスとして実装されます。


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

* 通常のユーザーフローを外れて、システムがアプリにイベントを配信できるようにするコンポーネントです。
* システムは実行中でないアプリに対してもブロードキャストを配信できます。
* ブロードキャスト レシーバは他のコンポーネントへの単なるゲートウェイであり、最小限の作業を行うことが前提となっています。
* ブロードキャスト レシーバは BroadcastReceiver のサブクラスとして実装され、各ブロードキャストは Intent オブジェクトとして配信されます

## コンテンツ プロバイダ

* ファイル システム、SQLite データベース、ウェブ、またはアプリからアクセス可能な他の永続的なストレージの場所に保存できるアプリデータの共有されている部分を管理します。
* システムから見て、コンテンツ プロバイダは、URI スキームにより識別される名前付きデータ項目を公開するための、アプリへのエントリ ポイントです。
* コンテンツ プロバイダは ContentProvider のサブクラスとして実装され、他のアプリがトランザクションを実行できるようにする API の標準セットを実装する必要があります。

## コンポーネントをアクティベートする

* 4 タイプあるコンポーネントのうちの 3 タイプ — アクティビティ、サービス、ブロードキャスト レシーバ — は、インテントと呼ばれる非同期メッセージによりアクティベートされます。
* インテントは Intent オブジェクトを使用して作成されます。

## マニフェスト ファイル

* Android システムがコンポーネントを開始できるようになるには、アプリのマニフェスト ファイル（AndroidManifest.xml）を読み取ることで、当該コンポーネントがあることを認識しなければなりません。アプリはすべてのコンポーネントをこのファイルで宣言し、アプリ プロジェクト ディレクトリのルートにこのファイルを置く必要があります。

## アプリのリソース

* ソースコードとは別に、画像、オーディオ ファイル、アプリの外観に関連するものなど、リソースが必要です。
* 

###### tags: `Android` `アプリの基礎`
