1page.title=<application> 2 3@jd:body 4 5<dl class="xml"> 6<dt>syntax:</dt> 7<dd><pre class="stx"><application android:<a href="#reparent">allowTaskReparenting</a>=["true" | "false"] 8 android:<a href="#allowbackup">allowBackup</a>=["true" | "false"] 9 android:<a href="#agent">backupAgent</a>="<i>string</i>" 10 android:<a href="#banner">banner</a>="<i>drawable resource</i>" 11 android:<a href="#debug">debuggable</a>=["true" | "false"] 12 android:<a href="#desc">description</a>="<i>string resource</i>" 13 android:<a href="#enabled">enabled</a>=["true" | "false"] 14 android:<a href="#code">hasCode</a>=["true" | "false"] 15 android:<a href="#hwaccel">hardwareAccelerated</a>=["true" | "false"] 16 android:<a href="#icon">icon</a>="<i>drawable resource</i>" 17 android:<a href="#isGame">isGame</a>=["true" | "false"] 18 android:<a href="#killrst">killAfterRestore</a>=["true" | "false"] 19 android:<a href="#largeHeap">largeHeap</a>=["true" | "false"] 20 android:<a href="#label">label</a>="<i>string resource</i>" 21 android:<a href="#logo">logo</a>="<i>drawable resource</i>" 22 android:<a href="#space">manageSpaceActivity</a>="<i>string</i>" 23 android:<a href="#nm">name</a>="<i>string</i>" 24 android:<a href="#prmsn">permission</a>="<i>string</i>" 25 android:<a href="#persistent">persistent</a>=["true" | "false"] 26 android:<a href="#proc">process</a>="<i>string</i>" 27 android:<a href="#restoreany">restoreAnyVersion</a>=["true" | "false"] 28 android:<a href="#requiredAccountType">requiredAccountType</a>="<i>string</i>" 29 android:<a href="#restrictedAccountType">restrictedAccountType</a>="<i>string</i>" 30 android:<a href="#supportsrtl">supportsRtl</a>=["true" | "false"] 31 android:<a href="#aff">taskAffinity</a>="<i>string</i>" 32 android:<a href="#testOnly">testOnly</a>=["true" | "false"] 33 android:<a href="#theme">theme</a>="<i>resource or theme</i>" 34 android:<a href="#uioptions">uiOptions</a>=["none" | "splitActionBarWhenNarrow"] 35 android:<a href="#usesCleartextTraffic">usesCleartextTraffic</a>=["true" | "false"] 36 android:<a href="#vmSafeMode">vmSafeMode</a>=["true" | "false"] > 37 . . . 38</application></pre></dd> 39 40<dt>contained in:</dt> 41<dd><code><a href="{@docRoot}guide/topics/manifest/manifest-element.html"><manifest></a></code></dd> 42 43<dt>can contain:</dt> 44<dd><code><a href="{@docRoot}guide/topics/manifest/activity-element.html"><activity></a></code> 45<br/><code><a href="{@docRoot}guide/topics/manifest/activity-alias-element.html"><activity-alias></a></code> 46<br/><code><a href="{@docRoot}guide/topics/manifest/meta-data-element.html"><meta-data></a></code> 47<br/><code><a href="{@docRoot}guide/topics/manifest/service-element.html"><service></a></code> 48<br/><code><a href="{@docRoot}guide/topics/manifest/receiver-element.html"><receiver></a></code> 49<br/><code><a href="{@docRoot}guide/topics/manifest/provider-element.html"><provider></a></code> 50<br/><code><a href="{@docRoot}guide/topics/manifest/uses-library-element.html"><uses-library></a></code></dd> 51 52<dt>description:</dt> 53<dd itemprop="description">The declaration of the application. This element contains subelements 54that declare each of the application's components and has attributes 55that can affect all the components. Many of these attributes (such as 56{@code icon}, {@code label}, {@code permission}, {@code process}, 57{@code taskAffinity}, and {@code allowTaskReparenting}) set default values 58for corresponding attributes of the component elements. Others (such as 59{@code debuggable}, {@code enabled}, {@code description}, and 60{@code allowClearUserData}) set values for the application as a whole and 61cannot be overridden by the components.</dd> 62 63 64 65 66 67<dt>attributes</dt> 68<dd><dl class="attr"> 69 70<dt><a name="reparent"></a>{@code android:allowTaskReparenting}</dt> 71<dd>Whether or not activities that the application defines can move from 72the task that started them to the task they have an affinity for when that task 73is next brought to the front — {@code "true"} if they can move, and 74{@code "false"} if they must remain with the task where they started. 75The default value is {@code "false"}. 76 77<p> 78The 79<code><a href="{@docRoot}guide/topics/manifest/activity-element.html"><activity></a></code> 80element has its own 81<code><a href="{@docRoot}guide/topics/manifest/activity-element.html#reparent">allowTaskReparenting</a></code> 82attribute that can override the value set here. See that attribute for more 83information. 84</p></dd> 85 86 87<dt><a name="allowbackup"></a>{@code android:allowBackup}</dt> 88<dd>Whether to allow the application to participate in the backup 89and restore infrastructure. If this attribute is set to false, no backup 90or restore of the application will ever be performed, even by a full-system 91backup that would otherwise cause all application data to be saved via adb. 92The default value of this attribute is true.</dd> 93 94 95<dt><a name="agent"></a>{@code android:backupAgent}</dt> 96<dd>The name of the class that implement's the application's backup agent, 97a subclass of {@link android.app.backup.BackupAgent}. The attribute value should be 98a fully qualified class name (such as, {@code "com.example.project.MyBackupAgent"}). 99However, as a shorthand, if the first character of the name is a period 100(for example, {@code ".MyBackupAgent"}), it is appended to the 101package name specified in the 102<code><a href="{@docRoot}guide/topics/manifest/manifest-element.html"><manifest></a></code> 103element. 104 105<p> 106There is no default. The name must be specified. 107</p></dd> 108 109<dt><a name="banner"></a>{@code android:banner}</dt> 110<dd>A <a href="{@docRoot}guide/topics/resources/drawable-resource.html">drawable resource</a> 111providing an extended graphical banner for its associated item. Use with the 112{@code <application>} tag to supply a default banner for all application activities, or with the 113<a href="{@docRoot}guide/topics/manifest/activity-element.html"><code><activity></code></a> 114tag to supply a banner for a specific activity. 115 116<p>The system uses the banner to represent an app in 117the Android TV home screen. Since the banner is displayed only in the home screen, it 118should only be specified by applications with an activity that handles the 119{@link android.content.Intent#CATEGORY_LEANBACK_LAUNCHER} intent.</p> 120 121<p>This attribute must be set as a reference to a drawable resource containing 122the image (for example {@code "@drawable/banner"}). There is no default banner. 123</p> 124 125<p> 126See <a href="{@docRoot}design/tv/patterns.html#banner"> 127Banners</a> in the UI Patterns for TV design guide, and <a href="{@docRoot}training/tv/start/start.html#banner"> 128Provide a home screen banner</a> in Get Started with TV Apps for more information. 129</p></dd> 130 131<dt><a name="debug"></a>{@code android:debuggable}</dt> 132<dd>Whether or not the application can be debugged, even when running 133on a device in user mode — {@code "true"} if it can be, and {@code "false"} 134if not. The default value is {@code "false"}.</dd> 135 136<dt><a name="desc"></a>{@code android:description}</dt> 137<dd>User-readable text about the application, longer and more descriptive than the application label. The value must be set as a reference to a string resource. Unlike the label, it cannot be a raw string. There is no default value.</dd> 138 139<dt><a name="enabled"></a>{@code android:enabled}</dt> 140<dd>Whether or not the Android system can instantiate components of 141the application — {@code "true"} if it can, and {@code "false"} 142if not. If the value is {@code "true"}, each component's 143{@code enabled} attribute determines whether that component is enabled 144or not. If the value is {@code "false"}, it overrides the 145component-specific values; all components are disabled. 146 147<p> 148The default value is {@code "true"}. 149</p></dd> 150 151<dt><a name="code"></a>{@code android:hasCode}</dt> 152<dd>Whether or not the application contains any code — {@code "true"} 153if it does, and {@code "false"} if not. When the value is {@code "false"}, 154the system does not try to load any application code when launching components. 155The default value is {@code "true"}. 156 157<p> 158An application would not have any code of its own only if it's using nothing 159but built-in component classes, such as an activity that uses the {@link 160android.app.AliasActivity} class, a rare occurrence.</p> 161</dd> 162 163<dt><a name="hwaccel"></a>{@code android:hardwareAccelerated}</dt> 164<dd>Whether or not hardware-accelerated rendering should be enabled for all 165activities and views in this application — {@code "true"} if it 166should be enabled, and {@code "false"} if not. The default value is {@code "true"} if you've set 167either <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#min">{@code minSdkVersion}</a> 168or <a 169href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#target">{@code targetSdkVersion}</a> 170to {@code "14"} or higher; otherwise, it's {@code "false"}. 171 172<p>Starting from Android 3.0 (API level 11), a hardware-accelerated OpenGL renderer is 173available to applications, to improve performance for many common 2D graphics 174operations. When the hardware-accelerated renderer is enabled, most operations 175in Canvas, Paint, Xfermode, ColorFilter, Shader, and Camera are accelerated. 176This results in smoother animations, smoother scrolling, and improved 177responsiveness overall, even for applications that do not explicitly make use 178the framework's OpenGL libraries. </p> 179 180<p>Note that not all of the OpenGL 2D operations are accelerated. If you enable 181the hardware-accelerated renderer, test your application to ensure that it can 182make use of the renderer without errors.</p> 183 184<p>For more information, read the <a href="{@docRoot}guide/topics/graphics/hardware-accel.html" 185>Hardware Acceleration</a> guide.</p> 186</dd> 187 188<dt><a name="icon"></a>{@code android:icon}</dt> 189<dd>An icon for the application as whole, and the default icon for 190each of the application's components. See the individual 191{@code icon} attributes for 192<code><a href="{@docRoot}guide/topics/manifest/activity-element.html"><activity></a></code>, 193<code><a href="{@docRoot}guide/topics/manifest/activity-alias-element.html"><activity-alias></a></code>, 194<code><a href="{@docRoot}guide/topics/manifest/service-element.html"><service></a></code>, 195<code><a href="{@docRoot}guide/topics/manifest/receiver-element.html"><receiver></a></code>, and 196<code><a href="{@docRoot}guide/topics/manifest/provider-element.html"><provider></a></code> elements. 197 198<p> 199This attribute must be set as a reference to a drawable resource containing 200the image (for example {@code "@drawable/icon"}). There is no default icon. 201</p></dd> 202 203<dt><a name="isGame"></a>{@code android:isGame}</dt> 204<dd>Whether or not the application is a game. The system may group together applications classifed 205as games or display them separately from other applications. 206 207<p>The default is {@code false}.</p></dd> 208 209<dt><a name="killrst"></a>{@code android:killAfterRestore}</dt> 210<dd>Whether the application in question should be terminated after its 211settings have been restored during a full-system restore operation. 212Single-package restore operations will never cause the application to 213be shut down. Full-system restore operations typically only occur once, 214when the phone is first set up. Third-party applications will not normally 215need to use this attribute. 216 217<p>The default is {@code true}, which means that after the application 218has finished processing its data during a full-system restore, it will be 219terminated. 220</p></dd> 221 222<dt><a name="largeHeap"></a>{@code android:largeHeap}</dt> 223<dd>Whether your application's processes should be created with a large Dalvik heap. This applies to 224all processes created for the application. It only applies to the first application loaded into a 225process; if you're using a shared user ID to allow multiple applications to use a process, they all 226must use this option consistently or they will have unpredictable results. 227<p>Most apps should not need this and should instead focus on reducing their overall memory usage for 228improved performance. Enabling this also does not guarantee a fixed increase in available memory, 229because some devices are constrained by their total available memory.</p> 230<p>To query the available memory size at runtime, use the methods {@link 231 android.app.ActivityManager#getMemoryClass()} or {@link 232 android.app.ActivityManager#getLargeMemoryClass()}.</p> 233</dd> 234 235<dt><a name="label"></a>{@code android:label}</dt> 236<dd>A user-readable label for the application as a whole, and a default 237label for each of the application's components. See the individual 238{@code label} attributes for 239<code><a href="{@docRoot}guide/topics/manifest/activity-element.html"><activity></a></code>, 240<code><a href="{@docRoot}guide/topics/manifest/activity-alias-element.html"><activity-alias></a></code>, 241<code><a href="{@docRoot}guide/topics/manifest/service-element.html"><service></a></code>, 242<code><a href="{@docRoot}guide/topics/manifest/receiver-element.html"><receiver></a></code>, and 243<code><a href="{@docRoot}guide/topics/manifest/provider-element.html"><provider></a></code> elements. 244 245<p> 246The label should be set as a reference to a string resource, so that 247it can be localized like other strings in the user interface. 248However, as a convenience while you're developing the application, 249it can also be set as a raw string. 250</p></dd> 251 252<dt><a name="logo"></a>{@code android:logo}</dt> 253<dd>A logo for the application as whole, and the default logo for activities. 254<p>This attribute must be set as a reference to a drawable resource containing 255the image (for example {@code "@drawable/logo"}). There is no default logo.</p></dd> 256 257<dt><a name="space"></a>{@code android:manageSpaceActivity}</dt> 258<dd>The fully qualified name of an Activity subclass that the system 259can launch to let users manage the memory occupied by the application 260on the device. The activity should also be declared with an 261<code><a href="{@docRoot}guide/topics/manifest/activity-element.html"><activity></a></code> element. 262</dd> 263 264<dt><a name="nm"></a>{@code android:name}</dt> 265<dd>The fully qualified name of an {@link android.app.Application} 266subclass implemented for the application. When the application process 267is started, this class is instantiated before any of the application's 268components. 269 270<p> 271The subclass is optional; most applications won't need one. 272In the absence of a subclass, Android uses an instance of the base 273Application class. 274</p></dd> 275 276<dt><a name="prmsn"></a>{@code android:permission}</dt> 277<dd>The name of a permission that clients must have in order to interact 278with the application. This attribute is a convenient way to set a 279permission that applies to all of the application's components. It can 280be overwritten by setting the {@code permission} attributes of individual 281components. 282 283<p> 284For more information on permissions, see the 285<a href="{@docRoot}guide/topics/manifest/manifest-intro.html#sectperm">Permissions</a> 286section in the introduction and another document, 287<a href="{@docRoot}guide/topics/security/security.html">Security and 288Permissions</a>. 289</p></dd> 290 291<dt><a name="persistent"></a>{@code android:persistent}</dt> 292<dd>Whether or not the application should remain running at all times — 293{@code "true"} if it should, and {@code "false"} if not. The default value 294is {@code "false"}. Applications should not normally set this flag; 295persistence mode is intended only for certain system applications.</dd> 296 297<dt><a name="proc"></a>{@code android:process}</dt> 298<dd>The name of a process where all components of the application should run. 299Each component can override this default by setting its own {@code process} 300attribute. 301 302<p> 303By default, Android creates a process for an application when the first 304of its components needs to run. All components then run in that process. 305The name of the default process matches the package name set by the 306<code><a href="{@docRoot}guide/topics/manifest/manifest-element.html"><manifest></a></code> element. 307</p> 308 309<p>By setting this attribute to a process name that's shared with another 310application, you can arrange for components of both applications to run in 311the same process — but only if the two applications also share a 312user ID and be signed with the same certificate. 313</p> 314 315<p> 316If the name assigned to this attribute begins with a colon (':'), a new 317process, private to the application, is created when it's needed. 318If the process name begins with a lowercase character, a global process 319of that name is created. A global process can be shared with other 320applications, reducing resource usage. 321</p></dd> 322 323<dt><a name="restoreany"></a>{@code android:restoreAnyVersion}</dt> 324<dd>Indicates that the application is prepared to attempt a restore of any 325backed-up data set, even if the backup was stored by a newer version 326of the application than is currently installed on the device. Setting 327this attribute to {@code true} will permit the Backup Manager to 328attempt restore even when a version mismatch suggests that the data are 329incompatible. <em>Use with caution!</em> 330 331<p>The default value of this attribute is {@code false}. 332</p></dd> 333 334 335 336<dt><a name="requiredAccountType"></a>{@code android:requiredAccountType}</dt> 337<dd>Specifies the account type required by the application in order to function. 338If your app requires an {@link android.accounts.Account}, the value for this attribute must 339correspond to the account authenticator 340type used by your app (as defined by {@link android.accounts.AuthenticatorDescription}), 341such as "com.google". 342 343<p>The default value is null and indicates that the application 344can work <em>without</em> any accounts. 345 346<p>Because restricted profiles currently 347cannot add accounts, specifying this attribute <strong>makes your app 348unavailable from a restricted profile</strong> unless you also declare 349<a href="#restrictedAccountType">{@code android:restrictedAccountType}</a> with 350the same value.</p> 351 352<p class="caution"><strong>Caution:</strong> 353If the account data may reveal personally identifiable information, it's important 354that you declare this attribute and leave <a href="#restrictedAccountType">{@code android:restrictedAccountType}</a> null, so that restricted profiles cannot use 355your app to access personal information that belongs to the owner user.</p> 356 357<p>This attribute was added in API level 18.</p> 358</dd> 359 360 361<dt><a name="restrictedAccountType"></a>{@code android:restrictedAccountType}</dt> 362<dd>Specifies the account type required by this application and indicates that restricted profiles 363are allowed to access such accounts that belong to the owner user. If your app requires an 364{@link android.accounts.Account} and restricted profiles <strong>are allowed to 365access</strong> the primary user's accounts, the value for this attribute must 366correspond to the account authenticator type used by your app (as 367defined by {@link android.accounts.AuthenticatorDescription}), such as "com.google". 368 369<p>The default value is null and indicates that the application can work <em>without</em> any 370accounts. 371 372<p class="caution"><strong>Caution:</strong> 373Specifying this attribute allows restricted profiles to use your 374app with accounts that belong to the owner user, which may reveal personally identifiable 375information. If the account may reveal personal details, you <strong>should not</strong> 376use this attribute and you should instead declare the <a 377href="#requiredAccountType">{@code android:requiredAccountType}</a> attribute 378to make your app unavailable to restricted profiles.</p> 379 380<p>This attribute was added in API level 18.</p> 381</dd> 382 383 384 385<dt><a name="supportsrtl"></a>{@code android:supportsRtl}</dt> 386<dd>Declares whether your application is willing to support right-to-left (RTL) layouts. 387<p>If set to {@code true} and <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#target" 388>{@code targetSdkVersion}</a> is set to 17 or higher, various RTL APIs will be 389activated and used by the system so your app can display RTL layouts. 390If set to {@code false} or if <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#target" 391>{@code targetSdkVersion}</a> is set to 16 or lower, the RTL APIs will be ignored 392or will have no effect and your app will behave the same regardless of the layout 393direction associated to the user's Locale choice (your layouts will always be left-to-right). 394 395<p>The default value of this attribute is {@code false}.</p> 396 397<p>This attribute was added in API level 17.</p> 398</dd> 399 400<dt><a name="aff"></a>{@code android:taskAffinity}</dt> 401<dd>An affinity name that applies to all activities within the application, 402except for those that set a different affinity with their own 403<code><a href="{@docRoot}guide/topics/manifest/activity-element.html#aff">taskAffinity</a></code> 404attributes. See that attribute for more information. 405 406<p> 407By default, all activities within an application share the same 408affinity. The name of that affinity is the same as the package name 409set by the 410<code><a href="{@docRoot}guide/topics/manifest/manifest-element.html"><manifest></a></code> element. 411</p></dd> 412 413<dt><a name="testOnly"></a>{@code android:testOnly}</dt> 414<dd>Indicates whether this application is only for testing purposes. For example, 415it may expose functionality or data outside of itself that would cause a security 416hole, but is useful for testing. This kind of application can be installed 417only through adb.</dd> 418 419 420<dt><a name="theme"></a>{@code android:theme}</dt> 421<dd>A reference to a style resource defining a default theme for all 422activities in the application. Individual activities can override 423the default by setting their own <code><a href="{@docRoot}guide/topics/manifest/activity-element.html#theme">theme</a></code> 424attributes. For more information, see the <a 425href="{@docRoot}guide/topics/ui/themes.html">Styles and Themes</a> developer guide. 426</dd> 427 428<!-- ##api level 14## --> 429<dt><a name="uioptions"></a>{@code android:uiOptions}</dt> 430<dd>Extra options for an activity's UI. 431 <p>Must be one of the following values.</p> 432 433 <table> 434 <tr><th>Value</th><th>Description</th></tr> 435 <tr><td>{@code "none"}</td><td>No extra UI options. This is the default.</td></tr> 436 <tr><td>{@code "splitActionBarWhenNarrow"}</td><td>Add a bar at 437the bottom of the screen to display action items in the {@link android.app.ActionBar}, when 438constrained for horizontal space (such as when in portrait mode on a handset). Instead of a small 439number of action items appearing in the action bar at the top of the screen, the action bar is 440split into the top navigation section and the bottom bar for action items. This ensures a reasonable 441amount of space is made available not only for the action items, but also for navigation and title 442elements at the top. Menu items are not split across the two bars; they always appear 443together.</td></tr> 444 </table> 445 <p>For more information about the action bar, see the <a 446href="{@docRoot}guide/topics/ui/actionbar.html">Action Bar</a> developer guide.</p> 447 <p>This attribute was added in API level 14.</p> 448</dd> 449 450<dt><a name="usesCleartextTraffic"></a>{@code android:usesCleartextTraffic}</dt> 451<dd>Indicates whether the app intends to use cleartext network traffic, such as cleartext HTTP. 452The default value is {@code "true"}. 453 454<p>When the attribute is set to {@code "false"}, platform components (for example, HTTP and FTP 455stacks, {@link android.app.DownloadManager}, {@link android.media.MediaPlayer}) will refuse the 456app's requests to use cleartext traffic. Third-party libraries are strongly encouraged to honor this 457setting as well. The key reason for avoiding cleartext traffic is the lack of confidentiality, 458authenticity, and protections against tampering: a network attacker can eavesdrop on transmitted 459data and also modify it without being detected. 460 461<p>This flag is honored on a best effort basis because it's impossible to prevent all cleartext 462traffic from Android applications given the level of access provided to them. For example, there's 463no expectation that the {@link java.net.Socket} API will honor this flag because it cannot 464determine whether its traffic is in cleartext. However, most network traffic from applications is 465handled by higher-level network stacks/components which can honor this flag by either reading it 466from {@link android.content.pm.ApplicationInfo#flags ApplicationInfo.flags} or 467{@link android.security.NetworkSecurityPolicy#isCleartextTrafficPermitted() NetworkSecurityPolicy.isCleartextTrafficPermitted()}. 468 469<p>NOTE: {@link android.webkit.WebView} does not honor this flag. 470 471<p>During app development, StrictMode can be used to identify any cleartext traffic from the app: see 472{@link android.os.StrictMode.VmPolicy.Builder#detectCleartextNetwork() StrictMode.VmPolicy.Builder.detectCleartextNetwork()}. 473 474<p>This attribute was added in API level 23.</p> 475</dd> 476 477<dt><a name="vmSafeMode"></a>{@code android:vmSafeMode}</dt> 478<dd>Indicates whether the app would like the virtual machine (VM) to operate 479in safe mode. The default value is {@code "false"}. 480 481<p> This attribute was added in API level 8 where a value of "true" 482disabled the Dalvik just-in-time (JIT) compiler. </p> 483 484<p> This attribute was adapted in API level 22 where a value of "true" 485disabled the ART ahead-of-time (AOT) compiler. </p> 486</dd> 487 488 489</dl></dd> 490 491<!-- ##api level indication## --> 492<dt>introduced in:</dt> 493<dd>API Level 1</dd> 494 495<dt>see also:</dt> 496<dd><code><a href="{@docRoot}guide/topics/manifest/activity-element.html"><activity></a></code> 497<br/><code><a href="{@docRoot}guide/topics/manifest/service-element.html"><service></a></code> 498<br/><code><a href="{@docRoot}guide/topics/manifest/receiver-element.html"><receiver></a></code> 499<br/><code><a href="{@docRoot}guide/topics/manifest/provider-element.html"><provider></a></code></dd> 500 501</dl> 502