1. 起動エントリポイントから見る
Android アプリがどのように起動するかを理解するには、まず全体設定ファイルである AndroidManifest.xml から見る必要があります。
AndroidManifest.xml を開いて、以下のコードを探してください:
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>Code language: HTML, XML (xml)
このコードには3つの重要な意味があります:
- Activity の登録:
MainActivityはAndroidManifest.xmlに登録されていないと、システムに認識されず使用できません。 - メインエントリの宣言:
<action android:name="android.intent.action.MAIN" />は、これがアプリのメインアクティビティであることを示します。 - ランチャーエントリの宣言:
<category android:name="android.intent.category.LAUNCHER" />は、ホーム画面のアプリアイコンをタップしたときに最初に起動されるアクティビティであることを示します。
MAINとLAUNCHERの両方を持つアクティビティだけが、アプリの起動エントリとして機能します。
2. Activity(アクティビティ)とは
Activity は Android アプリの顔です。画面に表示されているものはすべて、Activity の中で動いています。
app/java/ ディレクトリにある MainActivity.java を開くと、以下のようになっています:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}Code language: JavaScript (javascript)
順を追って解説します:
| コード | 説明 |
|---|---|
extends AppCompatActivity | AppCompatActivity を継承。Android 2.1 まで下位互換性のある Activity です |
すべての Activity は Activity(またはそのサブクラス)を継承する必要があります | Android コンポーネントの必須要件です |
onCreate() | Activity が作成されたときに自動的に実行されるライフサイクルメソッド |
setContentView(R.layout.activity_main) | 現在の Activity にレイアウトファイルを読み込んでバインドする |

3. ロジックとビューの分離(MVC に類似)
Android はロジックとビューの分離という設計思想を採用しており、MVC パターンに似ています:
- ロジック:
java/ディレクトリの Activity クラスに記述 - ビュー:
res/layout/ディレクトリの XML レイアウトファイルに記述
setContentView(R.layout.activity_main) はロジックとビューをつなぐ架け橋です。activity_main.xml というレイアウトを MainActivity に「差し込んで」います。

4. レイアウトファイルの解説
レイアウトファイルは res/layout/activity_main.xml にあります。

Android Studio には2つの編集モードがあります:
| モード | 説明 |
|---|---|
| Design | ドラッグ&ドロップの視覚的編集画面(WYSIWYG) |
| Text | XML コード編集画面 |
activity_main.xml を開くと、中身は以下のようになっています:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="こんにちはFoxdevelop" />Code language: HTML, XML (xml)
TextViewは Android の基本ウィジェットで、テキストを表示するために使われますandroid:text属性でウィジェットに表示される文字列を指定します
画面上の「Hello World」(またはカスタムテキスト)は、Java コードではなくここで定義されています。
5. 起動フロー全体のまとめ
起動プロセス全体を順に追うと、以下のようになります:
ユーザーがホーム画面のアプリアイコンをタップ
↓
システムが AndroidManifest.xml を読み込む
↓
MAIN + LAUNCHER を持つ Activity(MainActivity)を見つける
↓
MainActivity のインスタンスを生成
↓
onCreate() ライフサイクルメソッドを実行
↓
setContentView() が activity_main.xml レイアウトを読み込む
↓
レイアウト内の TextView がテキストを表示
↓
画面に「Hello World」が表示されるCode language: CSS (css)
一言でまとめると:
設定ファイルがエントリを宣言 → メインアクティビティが生成 → onCreate が実行 → レイアウトファイルを読み込み → 画面に描画
6. 開発の小技
- エミュレーターを毎回閉じる必要はありません:実行後、アプリを停止したい場合はツールバーの 🔴 Stop をクリックするだけです。電源を切ったりエミュレーターを終了したりする必要はありません。
- コードを変更したら、▶ Run をクリックして再デプロイするだけで変更が反映されます。

7. まとめ
| レイヤー | 対応ファイル | 役割 |
|---|---|---|
| 設定層 | AndroidManifest.xml | エントリアクティビティを宣言 |
| ロジック層 | MainActivity.java | アクティビティの動作を制御 |
| ビュー層 | activity_main.xml | 画面の内容を定義 |
設定ファイル → メインアクティビティ →
onCreate()メソッド → ビューレイアウトを読み込み → 画面表示
アプリはどうやって動いているのか