Tips

Android マニフェストファイル 【Android TIPS】

1
マニフェストファイル
マニフェストファイル
マニフェストファイルとは、AndroidManifest.xmlのことで、アプリケーション全体の設計図に相当するXMLファイルです。マニフェストファイルはこれまで何回も触ってきました。このCHAPTERではマニフェストファイルの各項目について説明します。
マニフェストファイルの概要
Androidアプリケーションには、ルートディレクトリに必ずAndroidManifest.xmlファイルが必要です。
このファイルはアプリケーション全体の設計図に相当するXMLファイルで、アプリケーションの機能をAndroidシステムに伝える役割を持っています。

主に以下のような情報が記述されています。

  1. アプリケーションのJavaパッケージ名
  2. アプリケーションに含まれるコンポーネント
  3. (コンポーネント:Activity、Service、BroadcastReceiver、ContentProvider)

  4. 保護されているAndroidシステムの機能にアクセスするためのパーミッション(アクセス権限)
  5. アプリケーションが必要とするAPIレベル
  6. アプリケーションが必要とする外部ライブラリ
<manifest>タグ
AndroidManifest.xmlファイルのルート要素です。
ここにはxmlns:android属性とpackage属性を必ず指定する必要があります。

 
  • 必須の子要素
  • &lt;application&gt;
    
     
  • 主な属性
  • 属性 内容
    xmlns:android Android ネームスペースを定義する。
    この属性は常に「http://schemas.android.com/apk/res/android」
    と設定されている必要がある。
    package Java のフルパッケージ名を指定する。
    この名前は一意でなければならない。
    android:versionCode 内部のバージョン番号を指定する。
    アプリケーションの現在のバージョンを数字を使って表し、
    最新のものかどうかを決定する目的のみに使用される。
    android:versionName ユーザに示すバージョン番号を指定する。
    この属性は文字列リソースの参照を設定することもできる。
    この文字列は、ユーザへ示すために用いるバージョン番号である。
     
  • 使用例
  • &lt;manifest xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
        package=&quot;com.example.helloworld&quot;
        android:versionCode=&quot;1&quot;
        android:versionName=&quot;1.0&quot; &gt;
     
    &lt;/manifest&gt;
    
<uses-permission>タグ
アプリケーションが動作するために必要なパーミッションを設定します。
重要なデータや機能へ誤ってアクセスすることによる、デバイスへの致命的な障害を引き起こすことを防ぐことができます。

 
  • 必須の子要素
  • なし

     
  • 主な属性
  • 属性 内容
    android:name パーミッションの名前。
    「android.permission.CAMERA」 や 「android.permission.READ_CONTACTS」
    等のシステム標準のものから独自定義したパーミッションまで様々なものを使用できるが、パーミッションの名前は一般的にパッケージ名が接頭辞として使われる。
     
  • 使用例
  • &lt;uses-permission android:name=&quot;android.permission.WRITE_EXTERNAL_STORAGE&quot; /&gt;
    
<uses-sdk>タグ
APIレベルを指定し、アプリケーションの互換性を設定します。
1.6や2.3といったSDKのバージョンではなく、4や9といったAPIレベルを指定します。

 
  • 必須の子要素
  • なし

     
  • 主な属性
  • 属性 内容
    android:minSdkVersion アプリケーションを実行するために必要な最小のAPIレベルを指定する。AndroidデバイスのAPIレベルがこの属性で設定された値より低い場合はインストールすることができなくなる。
    android:maxSdkVersion アプリケーションを実行するために必要な最大のAPIレベルを指定する。AndroidデバイスのAPIレベルがこの属性で設定された値より高い場合はインストールすることができなくなる。
    android:targetSdkVersion アプリケーションがターゲットとするAPIレベルを設定する。ここで指定されたバージョンでの動作はテスト済みであることを示すことができる。
     
  • 使用例
  •  &lt;uses-sdk android:minSdkVersion=&quot;7&quot;
            android:maxSdkVersion=&quot;10&quot; android:targetSdkVersion=&quot;7&quot;/&gt;
    
<uses-feature>タグ
アプリケーションが使用するデバイスの機能を設定します。
設定した機能をAndroidデバイスが搭載していない場合は、アプリケーションのインストールができなくなります。

 
  • 必須の子要素
  • なし

     
  • 主な属性
  • 属性 内容
    android:name アプリケーションが必要とする機能の名前。
    たとえば、「android.hardware.camera」を設定すると、アプリケーションがカメラを必要とすること、「android.hardware.camera.autofocus」を設定すると、アプリケーションがオートフォーカス機能付きのカメラを必要とすることになり、その機能を搭載していないデバイスへはインストールすることができなくなる。
     
  • 使用例
  • &lt;uses-feature android:name=&quot;android.hardware.camera&quot; /&gt;
    
<application>タグ
アプリケーションを宣言します。
このタグには子要素として各コンポーネントを宣言するタグを持ち、このタグ自身には全てのコンポーネントに影響を及ぼすような属性を設定します。

 
  • 必須の子要素
  • なし

     
  • 主な属性
  • 属性 内容
    android:icon アプリケーション全体のアイコンで、アプリケーションに含まれるコンポーネントのデフォルトのアイコンでもある。
    drawableリソースへの参照を設定する必要がある。
    android:label アプリケーション全体のラベルで、アプリケーションに含まれるコンポーネントのデフォルトのラベルでもある。
    このラベルには文字列リソースへの参照を設定し、他の文字列と同じようにローカライズすることが推奨される。
     
  • 使用例
  • &lt;application
        android:icon=&quot;@drawable/ic_launcher&quot;
        android:label=&quot;@string/app_name&quot; &gt;
     
    &lt;/application&gt;
    
<activity>タグ
アプリケーションのActivityを宣言します。
全てのActivityはマニフェストファイルにこのタグで宣言されている必要があり、宣言がないActivityは実行することができません。

 
  • 必須の子要素
  • なし

     
  • 主な属性
  • 属性 内容
    android:icon Activityのアイコンで、Activityをユーザに表示する必要があるときにスクリーン上部に表示される。設定されていない場合は、アプリケーションのアイコンが使われる。
    値を設定するときは、drawableリソースへの参照を設定する必要がある。
    android:label Activityのラベルで、Activityをユーザに表示する必要があるときにアイコンとともにスクリーン上部に表示される。設定されていない場合は、アプリケーションのラベルが使われる。このラベルには文字列リソースへの参照を設定し、他の文字列と同じようにローカライズすることが推奨される。
    android:name Activityのクラスを完全修飾クラス名で指定する。「Activity」クラスが<manifest> で指定しているパッケージに属している場合は、パッケージ名を省略し最初の1文字目を「.」ピリオドから始めることができる。
    android:screenOrientation Activityがデバイスに表示されるときの向きを指定する。
    「landscape」を指定すると横長の向きで、「portrait」を指定すると縦長の向きでActivityを表示する。
     
  • 使用例
  • &lt;activity
        android:name=&quot;.HelloWorldActivity&quot;
        android:label=&quot;@string/app_name&quot;
        android:screenOrientation=&quot;landscape&quot;&gt;
    &lt;/activity&gt;
    
<service>タグ
アプリケーションのコンポーネントの1つであるServiceを宣言します。
全てのServiceはマニフェストファイルにこのタグで宣言されている必要があり、宣言がないServiceは実行することができません。

 
  • 必須の子要素
  • なし

     
  • 主な属性
  • 属性 内容
    android:name Serviceのクラスを完全修飾クラス名で指定する。「Service」クラスが<manifest>で指定しているパッケージに属している場合は、パッケージ名を省略し最初の1文字目を「.」ピリオドから始めることができる。
    android:process Serviceが実行されるプロセスの名前を指定する。
    通常はアプリケーションが実行されるプロセスと同一のプロセス上で実行されるが、このタグを設定することでマルチプロセスのServiceを作成することができる。
     
  • 使用例
  • &lt;service android:name=&quot;.SampleService&quot;&gt;&lt;/service&gt;
    

Androidアプリ開発の必須知識!JAVAプログラミングを学べる連載リンク

はじめてのJAVA 連載

Recent News

Recent Tips

Tag Search