Help us understand the problem. What is going on with this article?

AndroidManifest.xml の備忘録

More than 1 year has passed since last update.

はじめに

AndroidManifest.xml は、アプリ作成において必須のファイルです。
AndroidManifest.xml には、ファイルにはアプリケーションに関する情報が記載されています。
マニフェストに記載された情報は、Androidシステムに提供されます。

ここには初歩的な内容を自分用の備忘録として残します。

AndroidManifest.xmlの要素

マニフェストで使用している要素の一例です。1
軽く眺める程度で覚えなくていいです。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="string">

    <permission />
    <permission-tree />
    <permission-group />

    <instrumentation />

    <uses-permission />
    <uses-sdk />
    <uses-configuration /> 
    <uses-feature />

    <supports-screens />

    <application>

        <activity>
            <intent-filter>
                <action />
                <category />
                <data />
            </intent-filter>

            <meta-data />
        </activity>

        <activity-alias>
            <intent-filter> . . . </intent-filter>
            <meta-data />
        </activity-alias>

        <service>
            <intent-filter> . . . </intent-filter>
            <meta-data/>
        </service>

        <receiver>
            <intent-filter> . . . </intent-filter>
            <meta-data />
        </receiver>

        <provider>
            <grant-uri-permission />
            <path-permission />
            <meta-data />
        </provider>

        <uses-library />

    </application>

</manifest>

AndroidManifest.xml の約束

AndroidManifest.xml を記載する上で重要な事は以下の4点です。

  • マニフェストは規定された要素のみで独自の要素や属性を追加することはできません
  • マニフェストには <manifest><application> の要素は必須です
  • <manifest><application> の要素の記載はAndroidManifest内で1回のみ2
  • <application> 要素は <manifest> 要素内に含むこと

つまりAndroidManifest.xmlの最小構成はこの様になります。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="string">

    <application>

    </application>

</manifest>

manifest 要素について

AndroidManifest.xml ファイルのルート要素です。
ここにはひとつの 要素を含め、xlmns:android と package 属性を特定する必要があります。

xmlns:android

xmlns:android は Androidネームスペースを定義します。
この属性は常に xmlns:android="http://schemas.android.com/apk/res/android" と設定されている必要があります。
要約すると「このファイルはAndroid用のxmlファイルです」と宣言しているのです。

package

Androidアプリを識別するために必要な情報。
Java言語のパッケージと同じ様にメインファイルまでのパスを指定します。

以下のファイル構成の場合は package="com.example" となります。

main
├ AndroidManifest.xml
└ java
    └ example
        └ com
            ├ Main.java
            └ Sub.java 

application 要素について

AndroidManifest.xml ファイルで定義するアプリの構成要素です。
アプリの設定に関するサブ要素を含んでいて、アプリに関する様々な指定が行えます(ラベル、アクティビティ、サービスなど)

最後に

本当に初歩の各要素(+属性)について細かく書いていったら時間がいくらあっても足りないし、更新されて仕様が変わったら無駄なので必要な箇所だけを記載しておきます。


  1. 以前は全要素と書いていましたが、今調べたところsupports-gl-textureなどの新しい要素が加わっていたので全要素の文字を削除しました 

  2. それ以外の要素はアプリの構成によってあったり無かったり複数あったり… 

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした