1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Android】AndroidManfestでよく見るタグについてゆるふわまとめ(自分用メモ)

Last updated at Posted at 2022-01-20

はじめに

とっても大事なのに意外に触る機会が多いわけでもないAndroidManifestファイル。たまに触ると何が何だか分からなかったので、また触るときにテンパらないように軽くまとめてみようと思います。
初心者ゆえに実際に触ったことがないタグも多いため、そのような箇所はかなりざっくりと書いています。あらかじめご了承ください。
もし間違いなどありましたらご指摘いただけますと幸いです。

実行環境

項目 情報
PC MacBook Pro (14-inch,2021)
CPU Apple M1 Pro 10-core
GPU Apple M1 Pro 16-core
OS macOS Monterey (12.0.1)
Android Studio Arctic Fox 2020.3.1 Patch4

そもそもAndroidManifestとは

マニフェスト ファイルは、アプリに関する重要な情報を Android ビルドツール、Android オペレーティング システム、Google Play に対して説明するものです。
(アプリマニフェストの概要 | AndroidDevelopersより引用)

アプリを実行するために必要な情報をOSさんに伝えるためのファイルってことですね。
xmlファイルで書かれているのでわかりやすいかと思いきや、アプリ全体の流れを知らないと理解できない箇所も多いため、なかなかマスターするのが大変そうだというのが個人的な感想です。

とりあえずコード

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

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.hogeApplication">

        <activity
            android:name=".MainActivity"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>
</manifest>

解説

  • manifestタグ
  • applicationタグ
    • activityタグ
      * intent-filterタグ
      * actionタグ
      * categoryタグ

の順番に見ていきます。

<manifest>タグ内

名前空間とパッケージを定義する必要があるタグです。
AndroidManifest内でトップのタグとなり、このタグ内に他のタグを書いていく形になります。
<application>タグは必須で含めなければなりません。
他に含めることのできるタグはこちらを参照してみてください。

applicationタグ内

AndroidManifest.xml
android:allowBackup="true"

↑デフォルトだとtrueになっていますね。
Androidでは25MBまでという制限の中で自動でGoogleDriveにバックアップを取るという機能があるようです。このタグではそのバックアップ機能を使うかどうかというもの。
場合によっては自動バックアップをオフにしたいという時もあるかと思うので、その際はこの値をfalseにします。

AndroidManifest.xml
android:icon="@mipmap/ic_launcher"

↑ホーム画面で表示されるアイコンを設定します。
何も考えずアプリをビルドして実行するとホーム画面にドロイド君がにゅっと顔を出しているアイコンが表示されていましたが、そのドロイド君の画像はこのタグで設定されていたんですね。
image.png

AndroidManifest.xml
android:label="@string/app_name"

↑ホーム画面で表示されるアプリ名を設定します。
この文字を変えるとホーム画面でアイコンの下に表示される名前が変わりました。
ただ色々調べてるとタグ内でandroid:label=""を設定している人もいたので要調査かも。
私が試した時はapplicationタグとactivityタグ両方にandroid:label=""を設定するとactivityタグに設定した値がホーム画面でも表示されていたので、おいおいその辺りも調べて記事にしたいです。

AndroidManifest.xml
android:supportsRtl="true"

↑RTLレイアウトをサポートするかどうかを設定します。
右から左へ文字を書く言語とかありますもんね。(アラビア語とか)
デフォルトではfalseらしいですがなぜかtrueになってました。

<activity>タグ内

android:name=".MainActivity"

↑Activityを実装するクラスを記述します。
もしActivityがAndroidManifestと違うディレクトリにある場合はパッケージ名が合うように書かないと怒られます。MainActivityがActivityクラスを継承していない場合も当然怒られます。

android:exported="true"

↑よそのアプリがこのアプリを起動できるかを設定します。
今回のように<activity>タグ内に<intent-filter>を入れ子にしている場合はこの値はtrueでなければいけません。

<intent-filter>タグ

このタグを使うと暗黙的インテントを使うことができるようになります。(インテントについてはこちらがとってもわかりやすかったです。神)
このintent-filter内ではactionタグが必須です。

<action>タグ

<action android:name="android.intent.action.MAIN" />

↑actionタグではアプリケーション起動時のアクションを設定します。
このMAINはエントリーポイントとして動作することを示します。(=最初に起動するアクティビティに設定します)
他に設定可能なアクションとしては電話をかけるCALLなどがあります。
まだまだたくさんあるので、ぜひこちらも参照してみてください。(英語しかなさげなのが残念)

<category>タグ

 <category android:name="android.intent.category.LAUNCHER" />

↑categoryタグはactionタグの追加情報を記述できるタグです。
このLAUNCHERはホーム画面から起動可能なことを表します。
他に指定可能なcategoryはactionと同じページのこちら
にまとまっています。

最後に

とりあえずざっくりですがAndroidManifestファイルをまとめてみました。
ここで取り上げたタグはほんの一部で、まだまだ設定可能な項目は星の数ほどあります。しかもその1つ1つが大きな意味を持っているので、調べるだけでも大変ですね...!
今回取り上げたものの中にも実際に手を動かせていない箇所がたくさんあったので、そのうち詳細版を記事にしたいなと思います。(android:labelの挙動とかインテントとかまだまだ把握できていないのでとりあえずここだけでもやりたい感)

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?