構文:
<application android:allowTaskReparenting=["true" | "false"]
                 android:allowBackup=["true" | "false"]
                 android:allowClearUserData=["true" | "false"]
                 android:backupAgent="string"
                 android:backupInForeground=["true" | "false"]
                 android:banner="drawable resource"
                 android:debuggable=["true" | "false"]
                 android:description="string resource"
                 android:directBootAware=["true" | "false"]
                 android:enabled=["true" | "false"]
                 android:extractNativeLibs=["true" | "false"]
                 android:fullBackupContent="string"
                 android:fullBackupOnly=["true" | "false"]
                 android:hasCode=["true" | "false"]
                 android:hardwareAccelerated=["true" | "false"]
                 android:icon="drawable resource"
                 android:isGame=["true" | "false"]
                 android:killAfterRestore=["true" | "false"]
                 android:largeHeap=["true" | "false"]
                 android:label="string resource"
                 android:logo="drawable resource"
                 android:manageSpaceActivity="string"
                 android:name="string"
                 android:networkSecurityConfig="xml resource"
                 android:permission="string"
                 android:persistent=["true" | "false"]
                 android:process="string"
                 android:restoreAnyVersion=["true" | "false"]
                 android:requiredAccountType="string"
                 android:resizeableActivity=["true" | "false"]
                 android:restrictedAccountType="string"
                 android:supportsRtl=["true" | "false"]
                 android:taskAffinity="string"
                 android:testOnly=["true" | "false"]
                 android:theme="resource or theme"
                 android:uiOptions=["none" | "splitActionBarWhenNarrow"]
                 android:usesCleartextTraffic=["true" | "false"]
                 android:vmSafeMode=["true" | "false"] >
        . . .
    </application>
上位の要素:
<manifest>
格納可能な下位の要素:
<activity>
<activity-alias>
<meta-data>
<service>
<receiver>
<provider>
<uses-library>
説明:
アプリの宣言。この要素は、各アプリ コンポーネントについて宣言するサブ要素を格納します。また、すべてのコンポーネントに影響する可能性のある属性も格納します。このような属性は多くの場合、各コンポーネント要素の該当属性のデフォルト値を設定します(iconlabelpermissionprocesstaskAffinityallowTaskReparenting など)。属性によっては、コンポーネント レベルでオーバーライドできないアプリレベルの値を設定する場合もあります(debuggableenableddescriptionallowClearUserData など)。
属性:
android:allowTaskReparenting
アプリが定義しているアクティビティに関して、あるタスクによってアクティビティが起動した後、親和性のあるタスクが次に前面に移行してきたときに、アクティビティを起動したタスクからそのタスクに移動できるかどうかを指定します。移動可能にする場合は "true"、起動したタスクに残る場合は "false" に設定します。デフォルト値は "false" です。

<activity> 要素は、独自の allowTaskReparenting 属性を持っており、ここで設定した値をオーバーライドできます。詳細については、該当の属性をご覧ください。

android:allowBackup
アプリがバックアップ / 復元用インフラストラクチャに参加できるようにするかどうかを指定します。この属性を false に設定した場合、すべてのアプリデータを保存するフルシステム バックアップを adb 経由で実行したとしても、このアプリのバックアップや復元は行われません。この属性のデフォルト値は true です。
android:allowClearUserData

アプリがユーザーデータをリセットできるようにするかどうかを指定します。対象となるデータとしては、各種のフラグや(例: ユーザーが入門用ツールチップを見たかどうか)、ユーザーがカスタマイズ可能な設定および環境設定などがあります。この属性のデフォルト値は true です。

注: この属性を明示的に宣言できるのは、システム イメージを構成するアプリに限られます。サードパーティ製アプリの場合、この属性をマニフェスト ファイル内に組み込むことはできません。

詳細については、新しいデバイスでユーザーデータを復元するをご覧ください。

android:backupAgent
BackupAgent のサブクラスであるアプリのバックアップ エージェントを実装するクラスの名前。属性値は、完全修飾クラス名にする必要があります(例: "com.example.project.MyBackupAgent")。ただし、短縮形として、名前の最初の文字をピリオドにした場合(例: ".MyBackupAgent")、<manifest> 要素内で指定されているパッケージ名に付加されます。

デフォルト値はありません。名前を指定する必要があります。

android:backupInForeground
フォアグラウンドおよび同等の状態にあるアプリに対して、自動バックアップ処理の実行を許可することを示します。自動バックアップ処理中、アプリはシステムによってシャットダウンされます。そのため、この属性は慎重に使用してください。このフラグを true に設定すると、アプリがアクティブなときに、アプリの動作が影響を受ける可能性があります。

デフォルト値は false です。この場合、フォアグラウンドで実行中のアプリ(たとえば、startForeground() 状態で、サービス経由でアクティブに音楽を再生している音楽アプリなど)に対して、OS はバックアップを実行しなくなります。

android:banner
関連アイテム用の拡張型グラフィカル バナーを実現するドローアブル リソース<application> タグと併用した場合、すべてのアプリ アクティビティに対してデフォルトのバナーを提供します。<activity> タグと併用した場合、特定のアクティビティに対してバナーを提供します。

システムはバナーを使用して Android TV のホーム画面にアプリを表示します。バナーが表示されるのはホーム画面に限られるため、バナーを指定する必要があるのは CATEGORY_LEANBACK_LAUNCHER インテントを処理するアクティビティを備えたアプリのみです。

この属性は、画像を含むドローアブル リソースへの参照として設定する必要があります(たとえば、"@drawable/banner")。デフォルト バナーはありません。

詳細については、TV アプリの作成を開始するの「ホーム画面のバナーを提供する」セクションをご覧ください。

android:debuggable
ユーザーモードのデバイス上で実行している場合でも、アプリをデバッグできるかどうかを指定します。デバッグ可能にする場合は "true"、そうでない場合は "false" に設定します。デフォルト値は "false" です。
android:description
アプリに関するユーザー可読テキスト。アプリラベルより長く、詳細な説明を記載できます。この値は、文字列リソースへの参照として設定する必要があります。ラベルとは異なり、raw 文字列は使用できません。デフォルト値はありません。
android:directBootAware

アプリがダイレクト ブート対応かどうか(ユーザーがデバイスのロックを解除する前に実行できるかどうか)を指定します。Application のカスタム サブクラスを使用している場合、アプリ内のいずれかのコンポーネントがダイレクト ブートに対応していれば、カスタムアプリ全体がダイレクト ブートに対応していると見なされます。

注: ダイレクト ブート中、アプリがアクセスできるのは、デバイス保護ストレージ内に保存されているデータだけに限られます。

デフォルト値は "false" です。

android:enabled
Android システムがアプリのコンポーネントをインスタンス化できるかどうかを指定します。可能な場合は "true"、そうでない場合は "false" に設定します。値を "true" にした場合、各コンポーネントの enabled 属性によって、そのコンポーネントを有効にするかどうかを決定できます。値を "false" にした場合、コンポーネント固有の値はオーバーライドされ、すべてのコンポーネントが無効になります。

デフォルト値は "true" です。

android:extractNativeLibs
パッケージ インストーラがネイティブ ライブラリを APK からファイル システムに抽出するかどうかを指定します。false に設定した場合、ネイティブ ライブラリは、ページ アライメントを行ったうえで、圧縮せずに APK 内に保存する必要があります。実行時にリンカーが直接 APK からライブラリをロードするため、コードを変更する必要はありません。

デフォルト値は "true" です。

android:fullBackupContent
この属性は、自動バックアップ用のフル バックアップ ルールを格納する XML ファイルを指定します。このルールは、バックアップするファイルを決定します。詳細については、自動バックアップ用構成ファイルの XML 構文をご覧ください。

この属性は省略可能です。指定しなかった場合、デフォルトでは、アプリのほとんどのファイルが自動バックアップの対象になります。詳細については、バックアップ対象のファイルをご覧ください。

android:fullBackupOnly
この属性は、自動バックアップを利用可能なデバイスで、自動バックアップを使用するかどうかを示します。true に設定した場合、Android 6.0(API レベル 23)以降を搭載しているデバイスにアプリをインストールすると、自動バックアップが実行されます。それよりも前のバージョンのデバイスの場合、アプリはこの属性を無視して、Key-Value バックアップを実行します。

デフォルト値は "false" です。

android:hasCode
アプリ内にコードが含まれているかどうかを指定します。含まれている場合は "true"、含まれていない場合は "false" に設定します。値が "false" の場合、コンポーネントの起動時に、システムはアプリコードをロードしようとしません。デフォルト値は "true" です。

たとえば、アプリが Google Play の Dynamic Delivery をサポートしていて、DEX ファイル(Android プラットフォーム向けに最適化されたバイトコード)を生成しない動的機能モジュールを備えている場合、モジュールのマニフェスト ファイル内で、このプロパティを false に設定する必要があります。そうしないと、ランタイム エラーが発生する可能性があります。

android:hardwareAccelerated
このアプリのすべてのアクティビティとビューに対して、ハードウェア アクセラレーテッド レンダリングを有効にするかどうかを指定します。有効にする場合は "true"、そうでない場合は "false" に設定します。minSdkVersion または targetSdkVersion"14" 以上に設定している場合、デフォルト値は "true" です。そうでない場合、デフォルト値は "false" です。

Android 3.0(API レベル 11)以降、一般的な 2D グラフィック処理のパフォーマンスを高めるため、アプリ内でハードウェア アクセラレーション OpenGL レンダラを使用できるようになっています。ハードウェア アクセラレーション レンダラを有効にすると、Canvas、Paint、Xfermode、ColorFilter、Shader、Camera のほとんどの処理が高速化されます。これにより、フレームワークの OpenGL ライブラリを明示的に利用しないアプリでも、スムーズなアニメーション、スムーズなスクロール、全体的なレスポンスの向上が実現します。

必ずしもすべての OpenGL 2D 処理が高速化されるわけではありません。ハードウェア アクセラレーション レンダラを有効にする場合は、エラーなくレンダラを使用できるか、必ずアプリをテストしてください。

詳細については、ハードウェア アクセラレーションをご覧ください。

android:icon
アプリ全体のアイコンや、各アプリ コンポーネントのデフォルト アイコンを指定します。個々の要素の icon 属性については <activity> 要素、<activity-alias> 要素、<service> 要素、<receiver> 要素、<provider> 要素をご覧ください。

この属性は、画像を含むドローアブル リソースへの参照として設定する必要があります(たとえば、"@drawable/icon")。デフォルト アイコンはありません。

android:isGame
アプリがゲームかどうかを指定します。Android システムでは、ゲームとして分類されたアプリをグループ化したり、他のアプリとは区別して表示したりすることがあります。

デフォルト値は false です。

android:killAfterRestore
フルシステム復元処理の実行中に、対象アプリの設定が復元された後、そのアプリを終了するかどうかを指定します。単一パッケージ復元処理の場合、アプリはシャットダウンされません。フルシステム復元処理は通常、デバイスを初めてセットアップする際に 1 回だけ実行されます。サードパーティ製アプリの場合は通常、この属性を使用する必要はありません。

デフォルト値は true です。この場合、フルシステム復元中にアプリがデータの処理を終了すると、そのアプリは終了します。

android:largeHeap
大量の Dalvik ヒープを使用してアプリのプロセスを作成するかどうかを指定します。これは、そのアプリ向けに作成されるすべてのプロセスに適用されます。また、適用されるアプリは、プロセスにロードされた最初のアプリだけに限られます。共有ユーザー ID を使用して複数のアプリが 1 つのプロセスを使用できるようにしている場合は、すべてのアプリで一貫してこの設定を使用する必要があります。そうしないと、予期しない結果が生じます。

ほとんどのアプリで、この機能は必要ありません。むしろ、全体的なメモリ使用量を抑えてパフォーマンスを改善する方が重要です。デバイスによっては、利用可能な総メモリ量に制約があるため、この機能を有効にしても、利用可能なメモリが確実に増加するとは限りません。

実行時に利用できるメモリサイズを照会するには、getMemoryClass() メソッドまたは getLargeMemoryClass() メソッドを使用します。

android:label
アプリ全体のユーザー可読ラベルや、各アプリ コンポーネントのデフォルト ラベルを指定します。個々の要素の label 属性については、<activity> 要素、<activity-alias> 要素、<service> 要素、<receiver> 要素、<provider> 要素をご覧ください。

ラベルは、文字列リソースへの参照として設定する必要があります。そうすることで、ユーザー インターフェース内の他の文字列と同じようにローカライズできるようになります。ただしアプリ開発の便宜上、raw 文字列で指定することも可能です。

android:logo
アプリ全体のロゴや、アクティビティのデフォルトロゴを指定します。

この属性は、画像を含むドローアブル リソースへの参照として設定する必要があります(たとえば、"@drawable/logo")。デフォルトロゴはありません。

android:manageSpaceActivity
デバイス上でアプリによって占有されるメモリをユーザーが管理できるように、システムが起動できる Activity サブクラスの完全修飾名。<activity> 要素を使用してアクティビティを宣言する必要もあります。
android:name
アプリに実装する Application サブクラスの完全修飾名。アプリプロセスが開始すると、どのアプリ コンポーネントよりも前にこのクラスがインスタンス化されます。

このサブクラスは省略可能です。ほとんどのアプリで必要ありません。サブクラスがない場合、Android は、ベースとなる Application クラスのインスタンスを使用します。

android:networkSecurityConfig

アプリのネットワーク セキュリティ構成を格納する XML ファイルの名前を指定します。この値は、構成を格納する XML リソース ファイルへの参照として設定する必要があります。

この属性は API レベル 24 で追加されました。

android:permission
クライアントがアプリとインタラクションする際に必要となるパーミッションの名前。この属性を使用すると、すべてのアプリ コンポーネントに適用されるパーミッションを簡単に設定できます。各コンポーネントで permission 属性を設定するとオーバーライドされます。

パーミッションの詳細については、概要の「パーミッション」セクションや、セキュリティとパーミッションをご覧ください。

android:persistent
アプリを常に稼働状態にするかどうかを指定します。稼働状態にする場合は "true"、しない場合は "false" に設定します。デフォルト値は "false" です。通常のアプリの場合、このフラグはセットしません。この持続モードは、特定のシステムアプリだけを対象としています。
android:process
すべてのアプリ コンポーネントを実行するプロセスの名前。各コンポーネントで独自の process 属性を設定することにより、このデフォルト設定をオーバーライドできます。

デフォルトでは、アプリの最初のコンポーネントの実行が必要になったときに、そのアプリのプロセスが作成されます。その後は、すべてのコンポーネントがそのプロセス内で実行されます。デフォルト プロセスの名前は、<manifest> 要素によって設定されているパッケージ名と一致します。

この属性を、別のアプリと共有するプロセス名に設定することにより、両方のアプリのコンポーネントを同じプロセス内で実行することができます。ただし、2 つのアプリがユーザー ID を共有し、同じ証明書で署名されている必要があります。

この属性に割り当てられた名前がコロン(:)で始まる場合、必要に応じて、アプリ専用の新しいプロセスが作成されます。プロセス名が小文字で始まる場合、その名前のグローバル プロセスが作成されます。グローバル プロセスは他のアプリと共有することが可能で、リソース使用量を削減できます。

android:restoreAnyVersion
デバイス上に現在インストールされているバージョンよりも新しいバージョンのアプリによってバックアップが保存された場合でも、バックアップ データセットの復元を試みるかどうかを指定します。この属性を true に設定すると、バージョンの不一致によってデータに互換性がない可能性がある場合でも、バックアップ マネージャーは復元を試みるようになります。使用する際は十分注意してください。

この属性のデフォルト値は false です。

android:requiredAccountType
アプリを機能させるうえで必要となるアカウント タイプを指定します。Account を必要とするアプリの場合、この属性の値は、「com.google」など、アプリが使用するアカウント認証システムタイプ(AuthenticatorDescription によって定義)に対応している必要があります。

デフォルト値は null で、この場合、アカウントがなくてもアプリは機能します。

現在のところ、制限付きプロファイルの場合はアカウントを追加できないため、この属性を指定した場合、同じ値を使用して android:restrictedAccountType を宣言しない限り、制限付きプロファイルではこのアプリを使用できなくなります

注: アカウント データから個人情報が漏洩する可能性がある場合は、この属性を宣言したうえで、android:restrictedAccountType を null のままにしてください。このように設定することで、制限付きプロファイルがこのアプリを使用してオーナー ユーザーの個人情報にアクセスすることはできなくなります。

この属性は API レベル 18 で追加されました。

resizeableActivity

アプリがマルチウィンドウ表示をサポートするかどうかを指定します。この属性は、<activity> 要素でも <application> 要素でも設定できます。

この属性を true に設定すると、ユーザーは、分割画面モードや自由形式モードでアクティビティを起動できるようになります。この属性を false に設定すると、アクティビティはマルチウィンドウ モードをサポートしなくなります。この値が false のときに、ユーザーがマルチウィンドウ モードでアクティビティを起動しようとすると、アクティビティは全画面モードで表示されます。

API レベル 24 以降をターゲットとしているアプリで、この属性に値を指定しなかった場合、属性の値はデフォルトで true になります。

この属性は API レベル 24 で追加されました。

android:restrictedAccountType
このアプリに必要となるアカウント タイプを指定し、オーナー ユーザーに属するアカウントに対して制限付きプロファイルがアクセスするのを許可することを示します。Account を必要とするアプリの場合、制限付きプロファイルがプライマリ ユーザーのアカウントにアクセスするのを許可するのであれば、この属性の値は、「com.google」など、アプリが使用するアカウント認証システムタイプ(AuthenticatorDescription によって定義)に対応している必要があります。

デフォルト値は null で、この場合、アカウントがなくてもアプリは機能します。

注: この属性を指定すると、制限付きプロファイルでもオーナー ユーザーに属するアカウントを使用してアプリを使用できるようになるため、個人情報が漏洩する可能性があります。アカウントから個人情報が漏洩する可能性がある場合は、この属性を使用せずに、代わりに android:requiredAccountType 属性を宣言して、制限付きプロファイルではこのアプリを使用できないようにしてください。

この属性は API レベル 18 で追加されました。

android:supportsRtl
アプリが RTL(右から左)レイアウトをサポートするかどうかを宣言します。

この属性を true に設定し、targetSdkVersion を 17 以上に設定すると、各種の RTL API がアクティブ化されて使用可能になり、アプリが RTL レイアウトを表示できるようになります。false に設定した場合、あるいは targetSdkVersion を 16 以下に設定した場合、RTL API は無視されるか効果を持たなくなり、ユーザーが選択した言語 / 地域に関連付けられたレイアウト方向に関係なく、アプリの動作は同じになります(レイアウトは常に左から右になります)。

この属性のデフォルト値は false です。

この属性は API レベル 17 で追加されました。

android:taskAffinity
アプリ内のすべてのアクティビティに適用されるアフィニティ名。ただし、独自の taskAffinity 属性を使用して異なるアフィニティを設定したアクティビティは除きます。詳細については、上記の属性をご覧ください。

デフォルトでは、アプリ内のすべてのアクティビティは同じアフィニティを共有します。そのアフィニティの名前は、<manifest> 要素で設定されているパッケージ名と同じになります。

android:testOnly
このアプリがテスト専用かどうかを示します。たとえば、セキュリティ ホールの原因となる可能性のある機能やデータを外部に公開することがあっても、テスト目的であれば役立ちます。このタイプの APK は、adb 経由に限りインストールすることができます。Google Play に公開することはできません。

Android Studio で [Run]()をクリックすると、自動的にこの属性が追加されます。

android:theme
アプリ内のすべてのアクティビティのデフォルト テーマを定義するスタイル リソースへの参照を指定します。各アクティビティに対して独自の theme 属性を設定することにより、このデフォルト設定をオーバーライドできます。詳細については、スタイルとテーマをご覧ください。
android:uiOptions
アクティビティの UI 用の追加オプションを指定します。

次のいずれかの値を指定する必要があります。

説明
"none"追加 UI オプションを使用しません。これがデフォルトです。
"splitActionBarWhenNarrow"水平方向のスペースに制約がある場合(ハンドセットを縦向きモードで使用する場合など)に、画面の下部にアプリバー(別名、アクションバー)を追加して、下部のバーにアクション アイテムを表示するようにします。画面上部のアプリバーに少数のアクション アイテムを表示するのではなく、アプリバーを分割して、上部のバーにナビゲーション セクションを表示し、下部のバーにアクション アイテムを表示します。これにより、アクション アイテムにも、上部のナビゲーション要素やタイトル要素にも、適切なスペースが確保されます。メニュー項目は 2 つのバーに分割されません。常に一緒に表示されます。

アプリバーの詳細については、アプリバーを追加するをご覧ください。

この属性は API レベル 14 で追加されました。

android:usesCleartextTraffic
アプリが平文ネットワーク トラフィック(平文 HTTP など)を使用することを想定しているかどうかを示します。API レベル 27 以前をターゲットとしているアプリの場合、デフォルト値は "true" です。API レベル 28 以降をターゲットとしているアプリの場合、デフォルト値は "false" です。

この属性を "false" に設定した場合、プラットフォーム コンポーネント(HTTP スタック、FTP スタック、DownloadManagerMediaPlayer など)は、アプリが平文トラフィックの使用をリクエストしてきても拒否します。サードパーティ製ライブラリでも、この設定を遵守することを強くおすすめします。平文トラフィックを避ける理由としては主に、機密性や信頼性に欠け、改ざんに対する保護機能がないことなどが挙げられます。平文トラフィックの場合、ネットワーク攻撃者は、検出されることなく、送受信データを傍受し、変更することができます。

Android アプリに付与されるアクセスレベルを考慮すると、Android アプリから平文トラフィックが一切生じないようにすることは不可能であるため、このフラグはベスト エフォート ベースで遵守されます。たとえば、Socket API はトラフィックが平文であるかどうかを判断できないため、この API がこのフラグを遵守することは想定できません。ただし、アプリから生じるネットワーク トラフィックの大半は、ハイレベルのネットワーク スタック / コンポーネントによって処理されます。ハイレベルのネットワーク スタック / コンポーネントであれば、ApplicationInfo.flags または NetworkSecurityPolicy.isCleartextTrafficPermitted() からこのフラグを読み取ることによって、フラグの設定を遵守することができます。

注: WebView は、API レベル 26 以降をターゲットとしているアプリであれば、この属性を遵守します。

アプリの開発中に、StrictMode を使用することで、アプリから生じる平文トラフィックを識別できます。詳細については、StrictMode.VmPolicy.Builder.detectCleartextNetwork() をご覧ください。

この属性は API レベル 23 で追加されました。

Android 7.0(API レベル 24)以降で、Android ネットワーク セキュリティ構成が存在する場合、このフラグは無視されます。

android:vmSafeMode
アプリが仮想マシン(VM)をセーフモードで動作させるかどうかを示します。デフォルト値は "false" です。

この属性は API レベル 8 で追加されました。当時は、値を「true」にすると、Dalvik 実行時(JIT)コンパイラが無効になっていました。

この属性は API レベル 22 で変更されました。以降、値を「true」にすると、ART 事前(AOT)コンパイラが無効になります。

導入時の API レベル:
API レベル 1
関連項目:
<activity>
<service>
<receiver>
<provider>