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

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


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

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

属性名の先頭には"android:"が付きますが、表示スペースの都合上、省略しています。 また、非常に長い名称の属性が追加されたので、強制的に途中で改行して表示するように変更しました。
  各属性の情報はインターネットで検索して集めました。
正確を期すようになるべく複数の情報源を調べるようにしましたが、内容が正確ではない可能性があることをご了承ください。
属性名 設定内容 API
allowAudioPlaybackCapture 他のアプリケーションによって機密性の低いオーディオの録音を許可するかどうかを指定します。
true:他のアプリケーションが録音することが可能となる。
false:システムアプリケーションを除いて、他のアプリケーションが録音することはできない。
機密性の低いオーディオに該当するのは、AttributeUsageがUSAGE_UNKNOWN、USAGE_GAME、USAGE_MEDIAのいずれかに設定されているものです。
targetSdkVersionを"29"未満に設定した場合のデフォルト値はfalse、"29"以上に設定した場合のデフォルト値はtrueです。
29
allowBackup バックアップサービスを利用するかどうかを指定します。
true:利用する、false:利用しない、デフォルト:true。
4
allowClearUserData ユーザデータを削除するオプションをユーザに与えるかどうかを指定します。
true:許可、false:不許可、デフォルト:true。
この属性はシステムアプリケーションのみで設定が有効となります。
APIレベル29以降、この属性はユーザが「設定」からアプリケーションのデータを消去できるかどうかだけを制御するようになりました。
allowClearUserDataOnFailedRestore 復元操作が失敗した時に、システムがアプリケーションのデータを消去するかどうかを指定します。
true:消去する、false:消去しない、デフォルト:true。
この属性はシステムアプリケーションのみで設定が有効となります。
29
allowTaskReparenting アプリケーションで定義したアクティビティが次に前面に現れるタイミングで、アクティビティを開始したタスクから親和性のあるタスクへと移動可能かどうかを指定します。
true:可、false:不可、デフォルト:false。
子要素の<activity>要素にも同じ属性があり、この設定を上書きすることができます。
appCategory アプリケーションが規定のカテゴリにマッチする場合に指定します。
カテゴリは、バッテリー消費量、ネットワーク使用量、ストレージ使用量を集計する場合などに、アプリケーションをグループごとにまとめるために使用されます。
カテゴリは以下から選択します。
  • audio
  • game
  • image
  • maps
  • news
  • productivity
  • social
  • video
26
appComponentFactory システムがマニフェストに定義されている要素のインスタンス化を制御するために使用するAppComponentFactoryのサブクラスの完全修飾名を指定します。 28
backupAgent アプリケーションのバックアップエージェントを実装したクラス名を指定します。
android.app.backup.BackupAgentのサブクラスを指定します。
4
backupInForeground アプリケーションがフォアグラウンドで動作中であっても、自動バックアップ処理を実行可能とするかどうかを指定します。
true:可、false:不可、デフォルト:false。
24
banner Android TV向けのホーム画面用のバナー画像を指定します。
画像を定義したDrawableリソース参照を指定する必要があります。
すべてのアクティビティのデフォルトのバナー画像として設定されます。
子要素の<activity>要素にも同じ属性があり、この設定を上書きすることができます。
21
cantSaveState アプリケーションが通常の状態の保存/復元の仕組みを適用しないかどうかを指定します。
true:適用しない、false:適用する、デフォルト:false。
trueに設定した場合は、アクティビティの通常のライフサイクルは適用されません。 アプリケーションがバックグラウンドに移った時に終了されることはなく、ユーザが明示的に終了させる必要があります。
このように実行できるアプリケーションは同時には一つだけとなり、他のこの設定のアプリケーションを起動しようとすると、すでに起動中のアプリケーションを終了するように求められます。
28
classLoader APKからアプリケーションのクラスをロードするために使用するクラスローダーのクラス名を指定します。
以下の項目が指定可能です。
  • dalvik.system.PathClassLoader
  • dalvik.system.DelegateLastClassLoader
デフォルト:dalvik.system.PathClassLoader
未知のクラスローダーを指定した場合は、アプリケーションがインストールされません。
27
debuggable アプリケーションのデバッグが可能かどうかを指定します。
true:可、false:不可、デフォルト:false。
この指定は実機での実行時にも有効です。
Eclipseから実行する場合は自動的にdebuggable="true"となります。
defaultToDeviceProtectedStorage アプリケーションのデフォルトの保存先ストレージを、認証情報暗号化ストレージから端末暗号化ストレージへリダイレクトするかどうかを指定します。
true:リダイレクトする、false:リダイレクトしない。
この属性はシステムアプリケーションのみで設定が有効となります。
24
description アプリケーションの説明文を指定します。
文字列のリソース参照を指定する必要があり、文字列リテラルは指定できません。
アプリケーションの一覧の「実行中」のアプリケーションの説明文として表示されます。
directBootAware ユーザがデバイスのロックを解除する前にアプリケーションの実行を可能とするダイレクトブートモードに対応するかどうかを指定します。
true:対応する、false:対応しない、デフォルト:false。
Applicationクラスを継承したクラスを利用している場合は、アプリケーション内のいずれかのコンポーネントがダイレクトブートモードに対応しているとアプリケーション全体がダイレクトブートモードに対応しているとみなされます。
24
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設定は、ビルトインコンポーネントのために使用されます。
hasFragileUserData アプリケーションのアンインストール時にアプリケーションのデータを保持しておくことをユーザが選択することができるようにするかどうかを指定します。
true:ユーザが選択することができる。
false:ユーザは選択できず、アプリケーションのデータは削除される。
デフォルト:false。
29
icon アプリケーション全体のアイコンを指定します。
画像を定義したDrawableリソース参照を指定する必要があります。
アプリケーションの各コンポーネントのデフォルトアイコンとなります。
ランチャーに配置できるのは起動可能なアクティビティなので、仮にアプリケーション内に起動可能な複数のアクティビティがある場合は、アクティビティごとに異なるアイコンを指定することも可能です。
isGame アプリケーションがゲームかどうかを指定します。
true:ゲーム、false:ゲームではない、デフォルト:false。
この属性の設定は、システムがアプリケーションをグループ分けする際に使用されます。
21
killAfterRestore フルシステムリストア実行後、アプリケーションの終了をユーザに問い合わせるかどうかを指定します。
true:問い合わせる、false:問い合わせない、デフォルト:true。
5
label アプリケーション全体のラベル(アプリケーション名)を指定します。
文字列のリソース参照を指定することが推奨されていますが、文字列リテラルを指定することもできます。
アプリケーションの各コンポーネントのデフォルトのラベルとなりますが、各コンポーネントで個別に指定することもできます。
ランチャーに配置したアプリケーション名にはアクティビティのラベルが使用され、アプリケーション一覧のアプリケーション名にはこのラベル属性が使用されます。
largeHeap アプリケーションが利用するヒープメモリサイズを大きくするかどうかを指定します。
true:有効、false:無効、デフォルト:false。
この属性を有効にしても、必ずしも大きなヒープメモリサイズが確保されるとは限りません。
11
logo アプリケーション全体のロゴを指定します。
画像を定義したDrawableリソース参照を指定する必要があります。
アプリケーションの各コンポーネントのアクションバーのデフォルトロゴとなります。
ロゴを指定しなかった場合はアイコンが使用されます。
11
manageSpaceActivity アプリケーションの管理画面で、「データを消去」の代わりとなる独自の処理を起動するためのアクティビティの完全修飾名を指定します。
<activity>要素として定義されているアクティビティを指定する必要があります。
maxAspectRatio アプリケーションがサポートする最大画面アスペクト比(画面の縦横の比率)を指定します。
Android7.1(APIレベル25)以下のデフォルト最大画面アスペクト比は"1.86"です。
Android8.0(APIレベル26)以上ではデフォルト設定がなく、画面アスペクト比が大きい端末でレイアウトに問題が生じる場合は、この属性を指定します。
指定した最大画面アスペクト比を超える部分の領域は使用せずに、アプリケーションが動作します。
浮動小数点形式で、(長辺/短辺)の値を指定します。
値は"1.0"以上である必要があり、それ以外の値は無視されます。 また、resizeableActivity属性がtrueに設定されている場合も無視されます。
この属性は子要素の<activity>要素でも指定することができます。
Android7.1(APIレベル25)以下で最大画面アスペクト比を指定したい場合は、<application>要素の子要素に<meta-data>要素を追加して、android.max_aspectの値を設定します。
26
minAspectRatio アプリケーションがサポートする最小画面アスペクト比(画面の縦横の比率)を指定します。
指定した最小画面アスペクト比に満たない部分の領域は使用せずに、アプリケーションが動作します。
浮動小数点形式で、(長辺/短辺)の値を指定します。
値は"1.0"以上である必要があり、それ以外の値は無視されます。また、resizeableActivity属性がtrueに設定されている場合も無視されます。
この属性は子要素の<activity>要素でも指定することができます。
29
multiArch マルチアーキテクチャ対応かどうかを指定します。
true:マルチアーキテクチャ対応、false:マルチアーキテクチャ対応ではない。
21
name アプリケーションのプロセスが開始された時、どのアプリケーションのコンポーネントよりも先にインスタンス化される android.app.Applicationのサブクラスの完全修飾名を指定します。
ほとんどのアプリケーションでは必要ありませんが、グローバルにアプリケーションの状態管理を実施したい場合などに利用します。
networkSecurityConfig アプリケーションのネットワークセキュリティ構成について記述したXMLリソースファイルを指定します。
アプリケーションのコードを修正しなくても、以下のような項目をカスタマイズできます。
  • 信頼できるCA
  • デバッグ用のCA
  • 暗号化されていないHTTPプロトコルの除外
  • 証明書の制限
24
neverEncrypt 暗号ファイルシステムが有効であったとしても、アプリケーションのユーザデータを暗号化せずに保存するかどうかを指定します。
true:暗号化しない、false:暗号化する。
Android7.0(APIレベル24)以上では、この属性指定はなくなりました。
~23
permission このアプリケーションの呼び出し元が、このアプリケーションと連携するために保持していなければならないアクセス権限名を指定します。
アプリケーションの各コンポーネントの共通のアクセス権限名となりますが、各コンポーネントで個別に上書き指定することもできます。
persistent アプリケーションが常駐すべきかどうかを指定します。
true:常駐する、false:常駐しない、デフォルト:false。
常駐モードはいくつかのシステムアプリケーションのためのものです。
通常のアプリケーションはこのフラグをセットするべきではありません。
persistentWhenFeatureAvailable 端末がこの属性で指定した機能を有している場合のみpersistent属性の設定が有効になります。 26
process アプリケーションのすべてのコンポーネントが実行されているべきプロセスの名前を指定します。
デフォルト値は<manifest>要素のpackage属性となります。
アプリケーションの各コンポーネントの共通のプロセス名となりますが、各コンポーネントで個別に上書き指定することもできます。
通常はアプリケーションのすべてのコンポーネントは同じプロセスで稼働しますが、サービスを異なるプロセスで実行し、アプリケーション終了後もサービスのプロセスが稼働し続けるように設定することができます。
また、他のアプリケーションと同じプロセスを共有する設定も可能ですが、両方のアプリケーションのユーザIDが同じで、同じ証明書で署名がされている場合に限り可能となります。
requestLegacyExternalStorage 外部ストレージアクセス方式を旧方式とするかどうかを指定します。
true:旧方式を使用する、false:新方式を使用する。
Android10(APIレベル29)以降では、外部ストレージに対する新しいアクセス方式が採用され、アプリケーションがアクセスできるのはアプリケーション固有の領域と特定のメディアタイプだけとなりました。
targetSdkVersionを"29"未満に設定した場合のデフォルト値はtrue、"29"以上に設定した場合のデフォルト値はfalseです。
この属性をtrueに設定しても、ポリシーまたは下位互換性の理由で、旧方式が使用されない場合もあります。
29
requiredAccountType アプリケーションがアカウントを必要とする場合、アプリケーション内で使用するアカウント認証タイプに対応した値を指定します。
例えば、アプリケーションがアカウントのセンシティブな個人情報を取り扱うため、制限付きプロファイル環境ではそのアプリケーションを利用させないようにしたい場合に、この属性を指定します。
18
requiredForAllUsers アプリケーションがすべてのユーザに利用できる必要があるかどうかを指定します。
true:必要あり、false:必要なし、デフォルト:false。
プレインストールアプリケーションのみがこの属性を使用することができます。
18
resizeableActivity アプリケーションがマルチウィンドウ表示をサポートするかどうかを指定します。
true:サポートする、false:サポートしない。
targetSdkVersionを"24"未満に設定した場合のデフォルト値はfalse、"24"以上に設定した場合のデフォルト値はtrueです。
この属性は子要素の<activity>要素でも指定することができます。
マルチウィンドウ表示では、アクティビティのscreenOrientation属性の指定は無視されます。
24
restoreAnyVersion どんなバージョンのバックアップデータであってもリストアの実行を試みるかどうかを指定します。
true:実行する、false:実行しない、デフォルト:false。
この属性をtrueに設定すると、バックアップデータと現在デバイスにインストールされているアプリケーションのバージョンに互換性がなくてもリストアを実行しようとするので、注意が必要です。
8
restoreNeedsApplication 非推奨。この属性はAndroidOSで使用されていません。
restrictedAccountType アプリケーションがアカウントを必要とし、制限付きプロファイル環境からプライマリユーザのアカウントにアクセス可能としたい場合、アプリケーション内で使用するアカウント認証タイプに対応した値を指定します。 18
roundIcon アプリケーションの各コンポーネントのデフォルトの丸型アイコンを指定します。
画像を定義したDrawableリソース参照を指定する必要があります。
25
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
useEmbeddedDex APKファイル内のDEXコードを直接実行するかどうかを指定します。
true:常に直接実行する、false:事前コンパイルも実行する、デフォルト:false。
DEXコードを直接実行する機能を有効にするためには、DEXコードを非圧縮とする設定も必要です。
アプリケーションは常にJITモードで実行されるため、ローカルコンパイルコードを改ざんする攻撃からアプリケーションを守ることができますが、パフォーマンスに影響する可能性もあります。
29
usesCleartextTraffic アプリケーションがネットワークトラフィックに平文テキストを使用するかどうかを指定します。
true:平文テキストを使用する、false:平文テキストを使用する通信のリクエストを拒否する、デフォルト:true。
ソケットAPIなどのように、トラフィックが平文テキストであるかどうかを判定することができない通信もあるため、必ず指定通りになるわけではありません。(可能な限りで従う)
23
usesNonSdkApi 非SDKインターフェースへのアクセスを必要とするかどうかを指定します。
true:必要、false:不要、デフォルト:false。
この属性はシステムアプリケーションまたはテスト目的でのみ使用することができます。
29
vmSafeMode アプリケーションの実行時にJITコンパイラを有効にするかどうかを指定します。
true:無効、false:有効、デフォルト:false。
8
zygotePreloadName マニフェストの<service>要素のuseAppZygote属性がtrueに設定されているサービスを開始するときに、これらのサービスで共有されるアプリケーションコードとデータをプリロードするクラス名を指定します。
この属性は完全修飾クラス名で指定する必要がありますが、先頭をピリオドで始める省略表記で指定することができ、その場合は<manifest>要素で指定したパッケージ名が付加されます。
android.app.ZygotePreloadインターフェースを実装している必要があります。
29
変更履歴
2014.06 参考文献の情報を元に加筆しました。
2014.10 APIレベル18で追加された属性を追記しました。
一部の属性の導入APIレベルの記述に誤りがあったので修正しました。
2016.06 APIレベル21で追加された属性を追記しました。
2016.10 APIレベル23で追加された属性を追記しました。
2018.01 APIレベル24で追加された属性を追記しました。
2018.07 APIレベル25で追加された属性を追記しました。
2019.02 APIレベル26で追加された属性を追記しました。
一部の属性の記述を修正しました。
2019.04 APIレベル27で追加された属性を追記しました。
2019.07 APIレベル28で追加された属性を追記しました。
2020.09 APIレベル29で追加された属性を追記しました。
一部の属性の記述を修正しました。

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