ITに関するさまざまなトピックを紹介するサイトです
このコンテンツはお使いのブラウザには対応しておりません。
新しいバージョンのブラウザでアクセスしてください。

AndroidManifest.xmlの<application>要素の属性一覧


AndroidManifest.xmlの<application>要素に指定する属性について調査した結果を一覧にまとめました。

AndroidのSDKはバージョンアップが繰り返され、仕様がいろいろ変更されています。
GiBlockのオリジナルのAndroidアプリを開発する際に最新の仕様を確認しようとしたところ、AndroidManifest.xmlの<application>要素に指定できる属性情報が正しく記載されているものが見つかりませんでした。
Googleのサイトでも記載のない属性がありました。
何をもって正しいとするか難しいところですが、実際の開発環境(Eclipse)でコードアシストで一覧表示される属性を基準としました。
ターゲットとしたSDKはAPIレベル23です。

属性名の先頭には"android:"が付きますが、表示スペースの都合上、省略しています。
  各属性の情報はインターネットで検索して集めました。
正確を期すようになるべく複数の情報源を調べるようにしましたが、内容が正確ではない可能性があることをご了承ください。
属性名 設定内容 API
allowBackup バックアップサービスを利用するかどうかを指定します。
true:利用する、false:利用しない、デフォルト:true。
4
allowClearUserData ユーザデータを削除するオプションをユーザに与えるかどうかを指定します。
true:許可、false:不許可、デフォルト:true。
この属性はシステムアプリケーションのみで設定が有効となります。
allowTaskReparenting アプリケーションで定義したアクティビティが次に前面に現れるタイミングで、アクティビティを開始したタスクから親和性のあるタスクへと移動可能かどうかを指定します。
true:可、false:不可、デフォルト:false。
子要素の<activity>要素にも同じ属性があり、この設定を上書きすることができます。
backupAgent アプリケーションのバックアップエージェントを実装したクラス名を指定します。
android.app.backup.BackupAgentのサブクラスを指定します。
4
banner Android TV向けのホーム画面用のバナー画像を指定します。
画像を定義したdrawableリソース参照を指定する必要があります。
すべてのアクティビティのデフォルトのバナー画像として設定されます。
子要素の<activity>要素にも同じ属性があり、この設定を上書きすることができます。
21
debuggable アプリケーションのデバッグが可能かどうかを指定します。
true:可、false:不可、デフォルト:false。
この指定は実機での実行時にも有効です。
Eclipseから実行する場合は自動的にdebuggable="true"となります。
description アプリケーションの説明文を指定します。
文字列のリソース参照を指定する必要があり、文字列リテラルは指定できません。
アプリケーションの一覧の「実行中」のアプリの説明文として表示されます。
enabled Androidシステムがアプリケーションのコンポーネントをインスタンス化できるかどうかを指定します。
true:可、false:不可、デフォルト:true。
trueに設定した場合は、各コンポーネントがインスタンス化できるかどうかは、そのコンポーネントのenabled属性によって決定されます。
falseに設定した場合は、すべてのコンポーネントのインスタンス化が不可となります。
extractNativeLibs ネイティブライブラリのロード方法に関する設定を指定します。
true:インストール時にパッケージマネージャがAPK内からネイティブライブラリを抽出して、ファイルシステムにコピーします。
false:APK内のネイティブライブラリを直接ロードします。この場合、ネイティブライブラリをAPK内に非圧縮で格納し、バウンダリ整列しておく必要があります。
デフォルト:true。
23
fullBackupContent バックアップ対象について記述したXMLリソースファイルを指定します。
XMLリソースファイルでは<full-backup-content>要素を記述し、その子要素として、バックアップに含める対象を指定する<include>要素、バックアップから除外する対象を指定する<exclude>要素、あるいはその両方を記述します。
23
fullBackupOnly Android6.0(APIレベル23)ではデータも含めてアプリケーションがフルバックアップされる新しい方式が導入されましたが、それ以前のBackupAgentのサブクラスを指定するバックアップ方式を採用しているアプリケーションをアップデートしてAndroid6.0に対応させる場合、この属性をtrueに設定することで新しいバックアップ方式を適用させることができます。
true:フルバックアップを適用する、false:フルバックアップを適用しない。
この属性設定はAndroid5.1(APIレベル22)以下の端末では無視されます。
21
hardwareAccelerated アプリケーションのすべてのアクティビティとビューにおいて、画面描画を高速化するハードウェアアクセラレーションを有効にすべきかどうかを指定します。
true:有効、false:無効。
ハードウェアアクセラレーションはAPIレベル11から使用することが可能になりました。
minSdkVersionかtargetSdkVersionを"14"以上に設定した場合のデフォルト値はtrue、それ以外の場合のデフォルト値はfalseです。
11
hasCode アプリケーションがコードを持っているかどうかを指定します。
true:持っている、false:持っていない、デフォルト:true。
この属性のfalse設定は、ビルトインコンポーネントのために使用されます。
icon アプリケーション全体のアイコンを指定します。
画像を定義したdrawableリソース参照を指定する必要があります。
アプリケーションの各コンポーネントのデフォルトアイコンとなります。
ランチャーに配置できるのは起動可能なアクティビティなので、仮にアプリケーション内に起動可能な複数のアクティビティがある場合は、アクティビティごとに異なるアイコンを指定することも可能です。
isGame アプリケーションがゲームかどうかを指定します。
true:ゲーム、false:ゲームではない、デフォルト:false。
この属性設定は、システムがアプリケーションをグループ分けする際に使用されます。
21
killAfterRestore フルシステムリストア実行後、アプリケーションの終了をユーザに問い合わせるかどうかを指定します。
true:問い合わせる、false:問い合わせない、デフォルト:true。
5
label アプリケーション全体のラベル(アプリケーション名)を指定します。
文字列のリソース参照を指定することが推奨されていますが、文字列リテラルを指定することもできます。
アプリケーションの各コンポーネントのデフォルトのラベルとなりますが、各コンポーネントで個別に指定することもできます。
ランチャーに配置したアプリケーション名にはアクティビティのラベルが使用され、アプリ一覧のアプリケーション名にはこのラベル属性が使用されます。
largeHeap アプリケーションが利用するヒープメモリサイズを大きくするかどうかを指定します。
true:有効、false:無効、デフォルト:false。
この属性を有効にしても、必ずしも大きなヒープメモリサイズが確保されるとは限りません。
11
logo アプリケーション全体のロゴを指定します。
画像を定義したdrawableリソース参照を指定する必要があります。
アプリケーションの各コンポーネントのアクションバーのデフォルトロゴとなります。
ロゴを指定しなかった場合はアイコンが使用されます。
11
manageSpaceActivity アプリケーションの管理画面で、「データを消去」の代わりとなる独自の処理を起動するためのアクティビティの完全修飾名を指定します。
<activity>要素として定義されているアクティビティを指定する必要があります。
multiArch マルチアーキテクチャ対応かどうかを指定します。
true:マルチアーキテクチャ対応、false:マルチアーキテクチャ対応ではない。
21
name アプリケーションのプロセスが開始された時、どのアプリケーションのコンポーネントよりも先にインスタンス化される android.app.Applicationのサブクラスの完全修飾名を指定します。
ほとんどのアプリケーションでは必要ありませんが、グローバルにアプリケーションの状態管理を実施したい場合などに利用します。
neverEncrypt 暗号ファイルシステムが有効であったとしても、アプリケーションのユーザデータを暗号化せずに保存するかどうかを指定します。
true:暗号化しない、false:暗号化する。
permission このアプリケーションの呼び出し元が、このアプリケーションと連携するために保持していなければならないアクセス権限名を指定します。
アプリケーションの各コンポーネントの共通のアクセス権限名となりますが、各コンポーネントで個別に上書き指定することもできます。
persistent アプリケーションが常駐すべきかどうかを指定します。
true:常駐する、false:常駐しない、デフォルト:false。
常駐モードはいくつかのシステムアプリケーションのためのものです。
通常のアプリケーションはこのフラグをセットするべきではありません。
process アプリケーションのすべてのコンポーネントが実行されているべきプロセスの名前を指定します。
デフォルト値は<manifest>要素のpackage属性となります。
アプリケーションの各コンポーネントの共通のプロセス名となりますが、各コンポーネントで個別に上書き指定することもできます。
通常はアプリケーションのすべてのコンポーネントは同じプロセスで稼働しますが、サービスを異なるプロセスで実行し、アプリケーション終了後もサービスのプロセスが稼働し続けるように設定することができます。
また、他のアプリケーションと同じプロセスを共有する設定も可能ですが、両方のアプリケーションのユーザIDが同じで、同じ証明書で署名がされている場合に限り可能となります。
requiredAccountType アプリケーションがアカウントを必要とする場合、アプリケーション内で使用するアカウント認証タイプに対応した値を指定します。
例えば、アプリケーションがアカウントのセンシティブな個人情報を取り扱うため、制限付きプロファイル環境ではそのアプリケーションを利用させないようにしたい場合に、この属性を指定します。
18
requiredForAllUsers アプリケーションがすべてのユーザに利用できる必要があるかどうかを指定します。
true:必要あり、false:必要なし、デフォルト:false。
プレインストールアプリケーションのみがこの属性を使用することができます。
18
restoreAnyVersion どんなバージョンのバックアップデータであってもリストアの実行を試みるかどうかを指定します。
true:実行する、false:実行しない、デフォルト:false。
この属性をtrueに設定すると、バックアップデータと現在デバイスにインストールされているアプリケーションのバージョンに互換性がなくてもリストアを実行しようとするので、注意が必要です。
8
restoreNeedsApplication 非推奨。この属性はAndroidOSで使用されていません。
restrictedAccountType アプリケーションがアカウントを必要とし、制限付きプロファイル環境からプライマリユーザのアカウントにアクセス可能としたい場合、アプリケーション内で使用するアカウント認証タイプに対応した値を指定します。 18
supportsRtl アプリケーションが右から左へのレイアウト(RTL)をサポートするかどうかを指定します。
true:サポートする、false:サポートしない、デフォルト:false。
targetSdkVersionを"16"以下に設定した場合、RTLのAPIは無視され、ユーザのロケール選択とレイアウトの方向が無関係となり、常に左から右へのレイアウトとなります。
右から左方向へ文字を書く、アラビア語、ヘブライ語、ペルシャ語などへ対応するための属性です。
17
taskAffinity アプリケーションのアクティビティに適用するタスクのアフィニティ名を指定します。
デフォルト値は<manifest>要素のpackage属性となります。
アプリケーションのすべてのアクティビティの共通のアフィニティ名となりますが、各アクティビティで個別に上書き指定することもできます。
アクティビティがどのタスクに属するかは、アフィニティ名以外にも起動モードやインテントで渡されるフラグ設定によっても変わってきます。
testOnly テストのみを目的としたアプリケーションであるかどうかを示すフラグです。
この属性をtrueに設定すると、通常の手順ではアプリケーションをインストールすることはできず、adbコマンドに-tオプションを指定する必要があります。
4
theme すべてのアクティビティのデフォルトテーマを定義するstyleリソースの参照を指定します。
各アクティビティで個別に上書き指定することもできます。
uiOptions アクティビティのUIの特別オプションを指定します。
none
特別オプションなし
splitActionBarWhenNarrow
スクリーンの横幅が狭い場合、上部のアクションバーだけではなく下部にもアクションバーを追加し、両方のアクションバーにアクションアイテムを分けて表示する。
デフォルト:none。
アプリケーションのすべてのアクティビティのデフォルト設定となりますが、各アクティビティで個別に上書き指定することもできます。
14
usesCleartextTraffic アプリケーションがネットワークトラフィックに平文テキストを使用するかどうかを指定します。
true:平文テキストを使用する、false:平文テキストを使用する通信のリクエストを拒否する、デフォルト:true。
ソケットAPIなどのように、トラフィックが平文テキストであるかどうかを判定することができない通信もあるため、必ず指定通りになるわけではありません。(可能な限りで従う)
23
vmSafeMode アプリケーションの実行時にJITコンパイラを有効にするかどうかを指定します。
true:無効、false:有効、デフォルト:false。
8
変更履歴
2014.06 参考文献の情報を元に加筆しました。
2014.10 APIレベル18で追加された属性を追記しました。
一部の属性の導入APIレベルの記述に誤りがあったので修正しました。
2016.06 APIレベル21で追加された属性を追記しました。
2016.10 APIレベル23で追加された属性を追記しました。

当サイトでは、第三者配信による広告サービスを利用しています。 このような広告配信事業者は、ユーザーの興味に応じた商品やサービスの広告を表示するため、当サイトや他サイトへのアクセスに関する情報(氏名、住所、メール アドレス、電話番号は含まれません)を使用することがあります。 このプロセスの詳細やこのような情報が広告配信事業者に使用されないようにする方法については、こちらをクリックしてください。