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

この記事からわかること

  • Android Studio/KotlinAndroidManifest.xmlとは?
  • 設定方法と役割
  • パッケージ名変更する
  • 最初起動するMainActivityを設定する

index

[open]

\ アプリをリリースしました /

みんなの誕生日

友達や家族の誕生日をメモ!通知も届く-みんなの誕生日-

posted withアプリーチ

参考文献:公式リファレンス:アプリ マニフェストの概要

環境

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ファイルの中には以下のような情報を設定することができます。

パッケージ名を変更する

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を変更できます。

まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。

ご覧いただきありがとうございました。

searchbox

スポンサー

ProFile

ame

趣味:読書,プログラミング学習,サイト制作,ブログ

IT嫌いを克服するためにITパスを取得しようと勉強してからサイト制作が趣味に変わりました笑
今はCMSを使わずこのサイトを完全自作でサイト運営中〜

New Article

index