Android application development 第6章:AndroidManifest.xmlの役割と構成

■ なぜManifestファイルが必要なのか?

Androidアプリには必ず AndroidManifest.xml というファイルがあります。これは、アプリ全体の“設計図”や“宣言書”のような役割を持つファイルです。

Javaで例えるなら、クラス定義やアクセス修飾子、インポート文などを1つのファイルにまとめて書くようなものです。Androidシステムは、このファイルを通じてアプリの構成・能力・動作条件を知り、動作許可を判断します。


■ どんなことを宣言するのか?

主に以下のような情報がこのファイルに書かれます:

機能内容の例
アプリの基本情報パッケージ名、アイコン、アプリ名など
コンポーネントの登録Activity、Service、BroadcastReceiverなど
権限の宣言インターネット通信、カメラ使用、位置情報など
最小/対象SDKバージョン動作可能なAndroidのバージョン範囲
Intentフィルタ他のアプリから呼び出される条件など

■ 実例で見るManifest

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.myapp">

    <!-- ネットワークアクセスの権限 -->
    <uses-permission android:name="android.permission.INTERNET"/>

    <application
        android:label="My App"
        android:icon="@mipmap/ic_launcher"
        android:theme="@style/Theme.MyApp">

        <!-- メイン画面としてのActivity -->
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <!-- 追加の画面 -->
        <activity android:name=".SecondActivity" />
    </application>
</manifest>

■ 解説ポイント

  • <manifest>package 属性がアプリの基本的な識別子(Javaでいうパッケージ名)です。
  • <uses-permission> で、必要な機能(カメラ、インターネットなど)をAndroid OSに申請します。
  • <application> の中に、実際に使う画面(Activity)などの構成要素を登録します。
  • MainActivity に付いている <intent-filter> により、「このActivityを起動時のスタート画面にする」とAndroidに教えています。

■ AndroidManifestがないとどうなる?

  • Activityが登録されていない → 起動時にクラッシュ
  • パーミッションを宣言していない → ネット接続などの機能が動作しない
  • バージョン情報が不足している → 古い/新しい端末でインストールできない

つまり、Manifestは「Androidシステムとアプリの間で、約束事を明確にしておくための重要なファイル」です。


まとめ:Manifestは“アプリの説明書”

Manifestファイルは普段あまり頻繁には触らないかもしれませんが、アプリの構成や振る舞いをOSに伝えるための必須ファイルです。新しい画面(Activity)を作ったらManifestへの登録を忘れずに行う習慣をつけておきましょう。

mh

Related Posts

Android application development 第33章:実践ミニアプリ:天気情報アプリ

Android application development 第32章:実践ミニアプリ:シンプルなToDoリスト

You Missed

Kubernetes Learning 第38章:Operatorとは? ~Kubernetesに「運用の自動化ロボット」を組み込む仕組み~

  • 投稿者 mh
  • 6月 19, 2025
  • 10 views

Google Cloud Platform エンジニア向け教科書:実践から認定まで : 第11章:Cloud Load Balancing:あなたのGCPリソースを「賢く振り分ける交通整理の達人」

  • 投稿者 mh
  • 6月 18, 2025
  • 13 views

Kubernetes Learning 第37章:JenkinsやGitHub ActionsからのKubernetesデプロイ例 ~CI/CDツールとKubernetesをつなげてみよう~

  • 投稿者 mh
  • 6月 17, 2025
  • 17 views

Google Cloud Platform エンジニア向け教科書:実践から認定まで : 第10章:Cloud DNS:インターネットの「電話帳」サービス

  • 投稿者 mh
  • 6月 16, 2025
  • 20 views

Kubernetes Learning 第36章:Argo CDとFluxの概要~Kubernetesの自動運用を支えるGitOpsツール~

  • 投稿者 mh
  • 6月 15, 2025
  • 37 views

Google Cloud Platform エンジニア向け教科書:実践から認定まで : 第9章:IPアドレス(外部IP、内部IP、静的IP):GCPリソースの「住所」と「電話番号」

  • 投稿者 mh
  • 6月 14, 2025
  • 31 views