【Android Studio】AndroidManifest.xmlとは?役割と設定方法

この記事からわかること
- Android Studio/KotlinのAndroidManifest.xmlとは?
- 設定方法と役割
- パッケージ名を変更する
- 最初に起動するMainActivityを設定する
index
[open]
\ アプリをリリースしました /
環境
- Android Studio:Flamingo
- Kotlin:1.8.20
AndroidManifest.xmlとは?
「AndroidManifest.xml」ファイルはAndroidアプリに関する情報が記述されたファイルです。具体的にはAndroid OSやGoogle playに対しての設定やビルドに関する情報を保持しています。Androidアプリには必須のファイルになっておりファイル名も変更しないで設置しておく必要があります。
中身はXML形式で記述されており、独自のタグを利用して設定がされています。タグの間には値は記述せず属性を使用して設定していきます。
Androidアプリプロジェクトを立ち上げた際にはデフォルトでアプリ名/app/src/main/AndroidManifest.xml
に用意されています。
ファイルの中身
プロジェクト立ち上げ時の初期ファイルは以下のようになっています。(Ver:Android Studio:Flamingo)
<!-- XMLファイルのバージョンとエンコーディングを指定 -->
<?xml version="1.0" encoding="utf-8"?>
<!-- Androidアプリケーションのマニフェストファイルであることを示すルート要素。xmlns属性はXML名前空間を指定。tools属性は開発ツールに関する情報を提供。 -->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<!-- アプリケーション要素。アプリケーション全体の設定を指定。 -->
<application
android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.NFCTest"
tools:targetApi="31">
<!-- アクティビティ要素。アプリケーション内のアクティビティを定義。 -->
<activity
android:name=".MainActivity"
android:exported="true">
<!-- インテントフィルター要素。アクティビティへのアクセス方法を定義。 -->
<intent-filter>
<!-- アクション要素。アクティビティが「MAIN」アクションを処理することを示す。 -->
<action android:name="android.intent.action.MAIN" />
<!-- カテゴリ要素。アクティビティが「LAUNCHER」カテゴリを持つことを示し、アプリケーションの起動アイコンが設定される。 -->
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
初期状態ではmanifest
タグとapplication
タグで囲われいる形式になります。AndroidManifest.xmlファイルは最低でもmanifest
タグとapplication
の2つのタグが必須になります。
中で設定される情報
AndroidManifest.xmlファイルの中には以下のような情報を設定することができます。
- パッケージ名(コードの名前空間)
- システムにアクセスするためのパーミション
- インストール可能な端末情報
- アプリ内で使用されるActivityやService
- 最初に起動するActivity
- etc...
パッケージ名を変更する
AndroidManifest.xmlからAndroidのパッケージ名も設定することが可能です。パーケージ名は基本的にはgradle内で設定しているアプリケーションID(デバイスやストアでアプリを識別するためのID)と同じ値ですが、明示的に変更することも可能です。その際package
は属性に逆順ドメイン表記で指定します。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.myapp"
android:versionCode="1"
android:versionName="1.0" >
...
</manifest>
最初に起動するActivityを変更する
Activityを追加すると自動的にマニフェストファイルにactivity
タグが追加されます。デフォルトではMainActivityが最初に表示されますが、SplashActivityを追加後以下のように修正することで最初に起動するActivityを変更することができます。
<activity
android:name=".MainActivity"
android:exported="false"/>
<activity
android:name=".SplashActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
android:exported
属性はアクティビティを他のアプリのコンポーネントから起動できるかどうかを設定する属性です。ここをtrue
にして中にintent-filter
タグを上記のように設置することで起動Activityを変更できます。
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。