blob: e63ba712fd2dc99693dbbc6dc3c85218e82059b5 [file] [log] [blame]
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001page.title=<application>
Scott Mainb40c1fd2013-04-23 13:30:06 -07002
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08003@jd:body
4
5<dl class="xml">
6<dt>syntax:</dt>
Scott Main6e88c842010-11-04 18:45:05 -07007<dd><pre class="stx">&lt;application android:<a href="#reparent">allowTaskReparenting</a>=["true" | "false"]
Scott Mainb40c1fd2013-04-23 13:30:06 -07008 android:<a href="#allowbackup">allowBackup</a>=["true" | "false"]
Christopher Tate4e14a822010-04-08 12:54:23 -07009 android:<a href="#agent">backupAgent</a>="<i>string</i>"
Scott Rowe4c3a07b2014-10-29 13:32:30 -070010 android:<a href="#banner">banner</a>="<i>drawable resource</i>"
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080011 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"]
Dirk Dougherty36d2d1b2011-02-20 00:40:38 -080015 android:<a href="#hwaccel">hardwareAccelerated</a>=["true" | "false"]
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080016 android:<a href="#icon">icon</a>="<i>drawable resource</i>"
Scott Rowe4c3a07b2014-10-29 13:32:30 -070017 android:<a href="#isGame">isGame</a>=["true" | "false"]
Christopher Tate4e14a822010-04-08 12:54:23 -070018 android:<a href="#killrst">killAfterRestore</a>=["true" | "false"]
Scott Main01e1b832012-07-02 20:05:54 -070019 android:<a href="#largeHeap">largeHeap</a>=["true" | "false"]
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080020 android:<a href="#label">label</a>="<i>string resource</i>"
Scott Mainc18b5342010-08-17 11:48:09 -070021 android:<a href="#logo">logo</a>="<i>drawable resource</i>"
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080022 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>"
Christopher Tate4e14a822010-04-08 12:54:23 -070027 android:<a href="#restoreany">restoreAnyVersion</a>=["true" | "false"]
Scott Mainb40c1fd2013-04-23 13:30:06 -070028 android:<a href="#requiredAccountType">requiredAccountType</a>="<i>string</i>"
29 android:<a href="#restrictedAccountType">restrictedAccountType</a>="<i>string</i>"
Scott Main22d17c92012-10-30 17:02:18 -070030 android:<a href="#supportsrtl">supportsRtl</a>=["true" | "false"]
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080031 android:<a href="#aff">taskAffinity</a>="<i>string</i>"
Scott Mainb40c1fd2013-04-23 13:30:06 -070032 android:<a href="#testOnly">testOnly</a>=["true" | "false"]
Scott Main084369f2011-10-20 20:12:21 -070033 android:<a href="#theme">theme</a>="<i>resource or theme</i>"
Scott Mainb40c1fd2013-04-23 13:30:06 -070034 android:<a href="#uioptions">uiOptions</a>=["none" | "splitActionBarWhenNarrow"]
Alex Klyubine35cefb2015-04-15 09:00:39 -070035 android:<a href="#usesCleartextTraffic">usesCleartextTraffic</a>=["true" | "false"]
Scott Mainb40c1fd2013-04-23 13:30:06 -070036 android:<a href="#vmSafeMode">vmSafeMode</a>=["true" | "false"] &gt;
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080037 . . .
38&lt;/application&gt;</pre></dd>
39
40<dt>contained in:</dt>
41<dd><code><a href="{@docRoot}guide/topics/manifest/manifest-element.html">&lt;manifest&gt;</a></code></dd>
42
43<dt>can contain:</dt>
44<dd><code><a href="{@docRoot}guide/topics/manifest/activity-element.html">&lt;activity&gt;</a></code>
45<br/><code><a href="{@docRoot}guide/topics/manifest/activity-alias-element.html">&lt;activity-alias&gt;</a></code>
qudduscc3e54982014-01-06 14:29:42 -080046<br/><code><a href="{@docRoot}guide/topics/manifest/meta-data-element.html">&lt;meta-data&gt;</a></code>
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080047<br/><code><a href="{@docRoot}guide/topics/manifest/service-element.html">&lt;service&gt;</a></code>
48<br/><code><a href="{@docRoot}guide/topics/manifest/receiver-element.html">&lt;receiver&gt;</a></code>
49<br/><code><a href="{@docRoot}guide/topics/manifest/provider-element.html">&lt;provider&gt;</a></code>
50<br/><code><a href="{@docRoot}guide/topics/manifest/uses-library-element.html">&lt;uses-library&gt;</a></code></dd>
51
52<dt>description:</dt>
Dirk Dougherty31558252014-02-08 20:29:06 -080053<dd itemprop="description">The declaration of the application. This element contains subelements
Scott Rowe4c3a07b2014-10-29 13:32:30 -070054that 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
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080058for corresponding attributes of the component elements. Others (such as
Scott Rowe4c3a07b2014-10-29 13:32:30 -070059{@code debuggable}, {@code enabled}, {@code description}, and
60{@code allowClearUserData}) set values for the application as a whole and
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080061cannot be overridden by the components.</dd>
62
Scott Mainb40c1fd2013-04-23 13:30:06 -070063
64
65
66
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080067<dt>attributes</dt>
68<dd><dl class="attr">
Christopher Tate4e14a822010-04-08 12:54:23 -070069
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080070<dt><a name="reparent"></a>{@code android:allowTaskReparenting}</dt>
Scott Rowe4c3a07b2014-10-29 13:32:30 -070071<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 &mdash; {@code "true"} if they can move, and
74{@code "false"} if they must remain with the task where they started.
Scott Main12a54752012-07-18 11:31:21 -070075The default value is {@code "false"}.
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080076
77<p>
Scott Rowe4c3a07b2014-10-29 13:32:30 -070078The
79<code><a href="{@docRoot}guide/topics/manifest/activity-element.html">&lt;activity&gt;</a></code>
80element has its own
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080081<code><a href="{@docRoot}guide/topics/manifest/activity-element.html#reparent">allowTaskReparenting</a></code>
Scott Rowe4c3a07b2014-10-29 13:32:30 -070082attribute that can override the value set here. See that attribute for more
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080083information.
84</p></dd>
85
Scott Mainb40c1fd2013-04-23 13:30:06 -070086
Paul Quei80d48832013-09-12 21:57:02 +080087<dt><a name="allowbackup"></a>{@code android:allowBackup}</dt>
Scott Mainb40c1fd2013-04-23 13:30:06 -070088<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
Christopher Tate4e14a822010-04-08 12:54:23 -070095<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
Scott Rowe4c3a07b2014-10-29 13:32:30 -070098a 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">&lt;manifest&gt;</a></code>
Christopher Tate4e14a822010-04-08 12:54:23 -0700103element.
104
105<p>
106There is no default. The name must be specified.
107</p></dd>
108
Scott Rowe4c3a07b2014-10-29 13:32:30 -0700109<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 &lt;application&gt;} tag to supply a default banner for all application activities, or with the
113<a href="{@docRoot}guide/topics/manifest/activity-element.html"><code>&lt;activity&gt;</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 "&#64;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
The Android Open Source Project9066cfe2009-03-03 19:31:44 -0800131<dt><a name="debug"></a>{@code android:debuggable}</dt>
Scott Rowe4c3a07b2014-10-29 13:32:30 -0700132<dd>Whether or not the application can be debugged, even when running
Scott Main12a54752012-07-18 11:31:21 -0700133on a device in user mode &mdash; {@code "true"} if it can be, and {@code "false"}
Scott Rowe4c3a07b2014-10-29 13:32:30 -0700134if not. The default value is {@code "false"}.</dd>
The Android Open Source Project9066cfe2009-03-03 19:31:44 -0800135
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>
Scott Rowe4c3a07b2014-10-29 13:32:30 -0700140<dd>Whether or not the Android system can instantiate components of
141the application &mdash; {@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
The Android Open Source Project9066cfe2009-03-03 19:31:44 -0800145component-specific values; all components are disabled.
146
147<p>
Scott Main12a54752012-07-18 11:31:21 -0700148The default value is {@code "true"}.
Scott Rowe4c3a07b2014-10-29 13:32:30 -0700149</p></dd>
The Android Open Source Project9066cfe2009-03-03 19:31:44 -0800150
151<dt><a name="code"></a>{@code android:hasCode}</dt>
Scott Rowe4c3a07b2014-10-29 13:32:30 -0700152<dd>Whether or not the application contains any code &mdash; {@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.
Scott Main12a54752012-07-18 11:31:21 -0700155The default value is {@code "true"}.
The Android Open Source Project9066cfe2009-03-03 19:31:44 -0800156
157<p>
158An application would not have any code of its own only if it's using nothing
Scott Rowe4c3a07b2014-10-29 13:32:30 -0700159but built-in component classes, such as an activity that uses the {@link
Dirk Dougherty36d2d1b2011-02-20 00:40:38 -0800160android.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
Scott Main12a54752012-07-18 11:31:21 -0700165activities and views in this application &mdash; {@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>
Scott Rowe4c3a07b2014-10-29 13:32:30 -0700168or <a
Scott Main12a54752012-07-18 11:31:21 -0700169href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#target">{@code targetSdkVersion}</a>
170to {@code "14"} or higher; otherwise, it's {@code "false"}.
Dirk Dougherty36d2d1b2011-02-20 00:40:38 -0800171
Scott Main12a54752012-07-18 11:31:21 -0700172<p>Starting from Android 3.0 (API level 11), a hardware-accelerated OpenGL renderer is
Dirk Dougherty36d2d1b2011-02-20 00:40:38 -0800173available 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>
Scott Main12a54752012-07-18 11:31:21 -0700183
184<p>For more information, read the <a href="{@docRoot}guide/topics/graphics/hardware-accel.html"
185>Hardware Acceleration</a> guide.</p>
Dirk Dougherty36d2d1b2011-02-20 00:40:38 -0800186</dd>
The Android Open Source Project9066cfe2009-03-03 19:31:44 -0800187
188<dt><a name="icon"></a>{@code android:icon}</dt>
Scott Rowe4c3a07b2014-10-29 13:32:30 -0700189<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">&lt;activity&gt;</a></code>,
The Android Open Source Project9066cfe2009-03-03 19:31:44 -0800193<code><a href="{@docRoot}guide/topics/manifest/activity-alias-element.html">&lt;activity-alias&gt;</a></code>,
Scott Rowe4c3a07b2014-10-29 13:32:30 -0700194<code><a href="{@docRoot}guide/topics/manifest/service-element.html">&lt;service&gt;</a></code>,
The Android Open Source Project9066cfe2009-03-03 19:31:44 -0800195<code><a href="{@docRoot}guide/topics/manifest/receiver-element.html">&lt;receiver&gt;</a></code>, and
196<code><a href="{@docRoot}guide/topics/manifest/provider-element.html">&lt;provider&gt;</a></code> elements.
197
198<p>
199This attribute must be set as a reference to a drawable resource containing
Scott Rowe4c3a07b2014-10-29 13:32:30 -0700200the image (for example {@code "&#64;drawable/icon"}). There is no default icon.
The Android Open Source Project9066cfe2009-03-03 19:31:44 -0800201</p></dd>
202
Scott Rowe4c3a07b2014-10-29 13:32:30 -0700203<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
Christopher Tate4e14a822010-04-08 12:54:23 -0700209<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
Scott Main01e1b832012-07-02 20:05:54 -0700222<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
The Android Open Source Project9066cfe2009-03-03 19:31:44 -0800235<dt><a name="label"></a>{@code android:label}</dt>
Scott Rowe4c3a07b2014-10-29 13:32:30 -0700236<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">&lt;activity&gt;</a></code>,
The Android Open Source Project9066cfe2009-03-03 19:31:44 -0800240<code><a href="{@docRoot}guide/topics/manifest/activity-alias-element.html">&lt;activity-alias&gt;</a></code>,
Scott Rowe4c3a07b2014-10-29 13:32:30 -0700241<code><a href="{@docRoot}guide/topics/manifest/service-element.html">&lt;service&gt;</a></code>,
The Android Open Source Project9066cfe2009-03-03 19:31:44 -0800242<code><a href="{@docRoot}guide/topics/manifest/receiver-element.html">&lt;receiver&gt;</a></code>, and
243<code><a href="{@docRoot}guide/topics/manifest/provider-element.html">&lt;provider&gt;</a></code> elements.
244
245<p>
246The label should be set as a reference to a string resource, so that
Scott Rowe4c3a07b2014-10-29 13:32:30 -0700247it can be localized like other strings in the user interface.
248However, as a convenience while you're developing the application,
The Android Open Source Project9066cfe2009-03-03 19:31:44 -0800249it can also be set as a raw string.
250</p></dd>
251
Scott Mainc18b5342010-08-17 11:48:09 -0700252<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
Scott Rowe4c3a07b2014-10-29 13:32:30 -0700255the image (for example {@code "&#64;drawable/logo"}). There is no default logo.</p></dd>
Scott Mainc18b5342010-08-17 11:48:09 -0700256
The Android Open Source Project9066cfe2009-03-03 19:31:44 -0800257<dt><a name="space"></a>{@code android:manageSpaceActivity}</dt>
Scott Rowe4c3a07b2014-10-29 13:32:30 -0700258<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
The Android Open Source Project9066cfe2009-03-03 19:31:44 -0800261<code><a href="{@docRoot}guide/topics/manifest/activity-element.html">&lt;activity&gt;</a></code> element.
262</dd>
263
264<dt><a name="nm"></a>{@code android:name}</dt>
Scott Rowe4c3a07b2014-10-29 13:32:30 -0700265<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.
The Android Open Source Project9066cfe2009-03-03 19:31:44 -0800269
270<p>
271The subclass is optional; most applications won't need one.
Scott Rowe4c3a07b2014-10-29 13:32:30 -0700272In the absence of a subclass, Android uses an instance of the base
The Android Open Source Project9066cfe2009-03-03 19:31:44 -0800273Application class.
274</p></dd>
275
276<dt><a name="prmsn"></a>{@code android:permission}</dt>
Scott Rowe4c3a07b2014-10-29 13:32:30 -0700277<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
The Android Open Source Project9066cfe2009-03-03 19:31:44 -0800281components.
282
283<p>
Scott Rowe4c3a07b2014-10-29 13:32:30 -0700284For 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,
The Android Open Source Project9066cfe2009-03-03 19:31:44 -0800287<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>
Scott Rowe4c3a07b2014-10-29 13:32:30 -0700292<dd>Whether or not the application should remain running at all times &mdash;
293{@code "true"} if it should, and {@code "false"} if not. The default value
294is {@code "false"}. Applications should not normally set this flag;
The Android Open Source Project9066cfe2009-03-03 19:31:44 -0800295persistence 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">&lt;manifest&gt;</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 &mdash; but only if the two applications also share a
312user ID and be signed with the same certificate.
313</p>
314
315<p>
Scott Rowe4c3a07b2014-10-29 13:32:30 -0700316If the name assigned to this attribute begins with a colon (':'), a new
The Android Open Source Project9066cfe2009-03-03 19:31:44 -0800317process, private to the application, is created when it's needed.
Scott Rowe4c3a07b2014-10-29 13:32:30 -0700318If the process name begins with a lowercase character, a global process
The Android Open Source Project9066cfe2009-03-03 19:31:44 -0800319of that name is created. A global process can be shared with other
320applications, reducing resource usage.
321</p></dd>
322
Scott Maincd1b08e2011-12-27 16:22:27 -0800323<dt><a name="restoreany"></a>{@code android:restoreAnyVersion}</dt>
Scott Main22d17c92012-10-30 17:02:18 -0700324<dd>Indicates that the application is prepared to attempt a restore of any
Christopher Tate4e14a822010-04-08 12:54:23 -0700325backed-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
Scott Mainb40c1fd2013-04-23 13:30:06 -0700334
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}),
Scott Rowe4c3a07b2014-10-29 13:32:30 -0700341such as "com.google".
Scott Mainb40c1fd2013-04-23 13:30:06 -0700342
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
Scott Main22d17c92012-10-30 17:02:18 -0700385<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
Scott Maincd1b08e2011-12-27 16:22:27 -0800400<dt><a name="aff"></a>{@code android:taskAffinity}</dt>
The Android Open Source Project9066cfe2009-03-03 19:31:44 -0800401<dd>An affinity name that applies to all activities within the application,
402except for those that set a different affinity with their own
Scott Rowe4c3a07b2014-10-29 13:32:30 -0700403<code><a href="{@docRoot}guide/topics/manifest/activity-element.html#aff">taskAffinity</a></code>
The Android Open Source Project9066cfe2009-03-03 19:31:44 -0800404attributes. See that attribute for more information.
405
406<p>
Scott Rowe4c3a07b2014-10-29 13:32:30 -0700407By 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
The Android Open Source Project9066cfe2009-03-03 19:31:44 -0800410<code><a href="{@docRoot}guide/topics/manifest/manifest-element.html">&lt;manifest&gt;</a></code> element.
411</p></dd>
412
Scott Mainb40c1fd2013-04-23 13:30:06 -0700413<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
The Android Open Source Project9066cfe2009-03-03 19:31:44 -0800420<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
Scott Rowe4c3a07b2014-10-29 13:32:30 -0700423the default by setting their own <code><a href="{@docRoot}guide/topics/manifest/activity-element.html#theme">theme</a></code>
Scott Main084369f2011-10-20 20:12:21 -0700424attributes. 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>
The Android Open Source Project9066cfe2009-03-03 19:31:44 -0800449
Alex Klyubine35cefb2015-04-15 09:00:39 -0700450<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
Alex Klyubinfbf45992015-04-21 13:44:29 -0700455stacks, {@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.
Alex Klyubine35cefb2015-04-15 09:00:39 -0700460
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
Alex Klyubinfbf45992015-04-21 13:44:29 -0700469<p>NOTE: {@link android.webkit.WebView} does not honor this flag.
470
Alex Klyubine35cefb2015-04-15 09:00:39 -0700471<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
Scott Mainb40c1fd2013-04-23 13:30:06 -0700477<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"}.
Brian Carlstromf4e73a92015-03-09 14:28:20 -0700480
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>
Scott Mainb40c1fd2013-04-23 13:30:06 -0700486</dd>
487
488
The Android Open Source Project9066cfe2009-03-03 19:31:44 -0800489</dl></dd>
490
Dirk Dougherty9c3209d2009-04-18 22:01:18 -0700491<!-- ##api level indication## -->
492<dt>introduced in:</dt>
493<dd>API Level 1</dd>
494
The Android Open Source Project9066cfe2009-03-03 19:31:44 -0800495<dt>see also:</dt>
496<dd><code><a href="{@docRoot}guide/topics/manifest/activity-element.html">&lt;activity&gt;</a></code>
497<br/><code><a href="{@docRoot}guide/topics/manifest/service-element.html">&lt;service&gt;</a></code>
498<br/><code><a href="{@docRoot}guide/topics/manifest/receiver-element.html">&lt;receiver&gt;</a></code>
499<br/><code><a href="{@docRoot}guide/topics/manifest/provider-element.html">&lt;provider&gt;</a></code></dd>
500
501</dl>