• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<?xml version="1.0" encoding="utf-8"?>
2<!--
3/* Copyright 2006, The Android Open Source Project
4**
5** Licensed under the Apache License, Version 2.0 (the "License");
6** you may not use this file except in compliance with the License.
7** You may obtain a copy of the License at
8**
9**     http://www.apache.org/licenses/LICENSE-2.0
10**
11** Unless required by applicable law or agreed to in writing, software
12** distributed under the License is distributed on an "AS IS" BASIS,
13** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14** See the License for the specific language governing permissions and
15** limitations under the License.
16*/
17-->
18<resources>
19    <!-- **************************************************************** -->
20    <!-- These are the attributes used in AndroidManifest.xml. -->
21    <!-- **************************************************************** -->
22    <eat-comment />
23
24    <!-- The overall theme to use for an activity.  Use with either the
25         application tag (to supply a default theme for all activities) or
26         the activity tag (to supply a specific theme for that activity).
27
28         <p>This automatically sets
29         your activity's Context to use this theme, and may also be used
30         for "starting" animations prior to the activity being launched (to
31         better match what the activity actually looks like).  It is a reference
32         to a style resource defining the theme.  If not set, the default
33         system theme will be used. -->
34    <attr name="theme" format="reference" />
35
36    <!-- A user-legible name for the given item.  Use with the
37         application tag (to supply a default label for all application
38         components), or with the activity, receiver, service, or instrumentation
39         tag (to supply a specific label for that component).  It may also be
40         used with the intent-filter tag to supply a label to show to the
41         user when an activity is being selected based on a particular Intent.
42
43         <p>The given label will be used wherever the user sees information
44         about its associated component; for example, as the name of a
45         main activity that is displayed in the launcher.  You should
46         generally set this to a reference to a string resource, so that
47         it can be localized, however it is also allowed to supply a plain
48         string for quick and dirty programming. -->
49    <attr name="label" format="reference|string" />
50
51    <!-- A Drawable resource providing a graphical representation of its
52         associated item.  Use with the
53         application tag (to supply a default icon for all application
54         components), or with the activity, receiver, service, or instrumentation
55         tag (to supply a specific icon for that component).  It may also be
56         used with the intent-filter tag to supply an icon to show to the
57         user when an activity is being selected based on a particular Intent.
58
59         <p>The given icon will be used to display to the user a graphical
60         representation of its associated component; for example, as the icon
61         for main activity that is displayed in the launcher.  This must be
62         a reference to a Drawable resource containing the image definition. -->
63    <attr name="icon" format="reference" />
64
65    <!-- A Drawable resource providing a graphical representation of its
66         associated item.  Use with the
67         application tag (to supply a default round icon for all application
68         components), or with the activity, receiver, service, or instrumentation
69         tag (to supply a specific round icon for that component).  It may also be
70         used with the intent-filter tag to supply a round icon to show to the
71         user when an activity is being selected based on a particular Intent.
72
73         <p>The given round icon will be used to display to the user a graphical
74         representation of its associated component; for example, as the round icon
75         for main activity that is displayed in the launcher.  This must be
76         a reference to a Drawable resource containing the image definition. -->
77    <attr name="roundIcon" format="reference" />
78
79    <!-- A Drawable resource providing an extended graphical banner for its
80         associated item. Use with the application tag (to supply a default
81         banner for all application activities), or with the activity, tag to
82         supply a banner for a specific activity.
83
84         <p>The given banner will be used to display to the user a graphical
85         representation of an activity in the Leanback application launcher.
86         Since banners are displayed only in the Leanback launcher, they should
87         only be used with activities (and applications) that support Leanback
88         mode. These are activities that handle Intents of category
89         {@link android.content.Intent#CATEGORY_LEANBACK_LAUNCHER
90         Intent.CATEGORY_LEANBACK_LAUNCHER}.
91         <p>This must be a reference to a Drawable resource containing the image definition. -->
92    <attr name="banner" format="reference" />
93
94    <!-- A Drawable resource providing an extended graphical logo for its
95         associated item. Use with the application tag (to supply a default
96         logo for all application components), or with the activity, receiver,
97         service, or instrumentation tag (to supply a specific logo for that
98         component). It may also be used with the intent-filter tag to supply
99         a logo to show to the user when an activity is being selected based
100         on a particular Intent.
101
102         <p>The given logo will be used to display to the user a graphical
103         representation of its associated component; for example as the
104         header in the Action Bar. The primary differences between an icon
105         and a logo are that logos are often wider and more detailed, and are
106         used without an accompanying text caption. This must be a reference
107         to a Drawable resource containing the image definition. -->
108    <attr name="logo" format="reference" />
109
110    <!-- Name of the activity to be launched to manage application's space on
111         device. The specified activity gets automatically launched when the
112         application's space needs to be managed and is usually invoked
113         through user actions. Applications can thus provide their own custom
114         behavior for managing space for various scenarios like out of memory
115         conditions. This is an optional attribute and
116         applications can choose not to specify a default activity to
117         manage space. -->
118    <attr name="manageSpaceActivity" format="string" />
119
120    <!-- Option to let applications specify that user data can/cannot be
121         cleared. This flag is turned on by default.
122         <em>This attribute is usable only by applications
123         included in the system image. Third-party apps cannot use it.</em> -->
124    <attr name="allowClearUserData" format="boolean" />
125
126    <!-- Option to indicate this application is only for testing purposes.
127         For example, it may expose functionality or data outside of itself
128         that would cause a security hole, but is useful for testing.  This
129         kind of application can not be installed without the
130         INSTALL_ALLOW_TEST flag, which means only through adb install.  -->
131    <attr name="testOnly" format="boolean" />
132
133    <!-- A unique name for the given item.  This must use a Java-style naming
134         convention to ensure the name is unique, for example
135         "com.mycompany.MyName". -->
136    <attr name="name" format="string" />
137
138    <!-- Specify a permission that a client is required to have in order to
139    	 use the associated object.  If the client does not hold the named
140    	 permission, its request will fail.  See the
141         <a href="{@docRoot}guide/topics/security/security.html">Security and Permissions</a>
142         document for more information on permissions. -->
143    <attr name="permission" format="string" />
144
145    <!-- A specific {@link android.R.attr#permission} name for read-only
146         access to a {@link android.content.ContentProvider}.  See the
147         <a href="{@docRoot}guide/topics/security/security.html">Security and Permissions</a>
148         document for more information on permissions. -->
149    <attr name="readPermission" format="string" />
150
151    <!-- A specific {@link android.R.attr#permission} name for write
152         access to a {@link android.content.ContentProvider}.  See the
153         <a href="{@docRoot}guide/topics/security/security.html">Security and Permissions</a>
154         document for more information on permissions. -->
155    <attr name="writePermission" format="string" />
156
157    <!-- If true, the {@link android.content.Context#grantUriPermission
158         Context.grantUriPermission} or corresponding Intent flags can
159         be used to allow others to access specific URIs in the content
160         provider, even if they do not have an explicit read or write
161         permission.  If you are supporting this feature, you must be
162         sure to call {@link android.content.Context#revokeUriPermission
163         Context.revokeUriPermission} when URIs are deleted from your
164         provider.-->
165    <attr name="grantUriPermissions" format="boolean" />
166
167    <!-- Characterizes the potential risk implied in a permission and
168         indicates the procedure the system should follow when determining
169         whether to grant the permission to an application requesting it. {@link
170         android.Manifest.permission Standard permissions} have a predefined and
171         permanent protectionLevel. If you are creating a custom permission in an
172         application, you can define a protectionLevel attribute with one of the
173         values listed below. If no protectionLevel is defined for a custom
174         permission, the system assigns the default ("normal"). -->
175    <attr name="protectionLevel">
176        <!-- A lower-risk permission that gives an application access to isolated
177             application-level features, with minimal risk to other applications,
178             the system, or the user. The system automatically grants this type
179             of permission to a requesting application at installation, without
180             asking for the user's explicit approval (though the user always
181             has the option to review these permissions before installing). -->
182        <flag name="normal" value="0" />
183        <!-- A higher-risk permission that would give a requesting application
184             access to private user data or control over the device that can
185             negatively impact the user.  Because this type of permission
186             introduces potential risk, the system may not automatically
187             grant it to the requesting application.  For example, any dangerous
188             permissions requested by an application may be displayed to the
189             user and require confirmation before proceeding, or some other
190             approach may be taken to avoid the user automatically allowing
191             the use of such facilities.  -->
192        <flag name="dangerous" value="1" />
193        <!-- A permission that the system is to grant only if the requesting
194             application is signed with the same certificate as the application
195             that declared the permission. If the certificates match, the system
196             automatically grants the permission without notifying the user or
197             asking for the user's explicit approval. -->
198        <flag name="signature" value="2" />
199        <!-- A permission that the system is to grant only to packages in the
200             Android system image <em>or</em> that are signed with the same
201             certificates. Please avoid using this option, as the
202             signature protection level should be sufficient for most needs and
203             works regardless of exactly where applications are installed.  This
204             permission is used for certain special situations where multiple
205             vendors have applications built in to a system image which need
206             to share specific features explicitly because they are being built
207             together. -->
208        <flag name="signatureOrSystem" value="3" />
209        <!-- Additional flag from base permission type: this permission can also
210             be granted to any applications installed as privileged apps on the system image.
211             Please avoid using this option, as the
212             signature protection level should be sufficient for most needs and
213             works regardless of exactly where applications are installed.  This
214             permission flag is used for certain special situations where multiple
215             vendors have applications built in to a system image which need
216             to share specific features explicitly because they are being built
217             together. -->
218        <flag name="privileged" value="0x10" />
219        <!-- Old synonym for "privileged". -->
220        <flag name="system" value="0x10" />
221        <!-- Additional flag from base permission type: this permission can also
222             (optionally) be granted to development applications. -->
223        <flag name="development" value="0x20" />
224        <!-- Additional flag from base permission type: this permission is closely
225             associated with an app op for controlling access. -->
226        <flag name="appop" value="0x40" />
227        <!-- Additional flag from base permission type: this permission can be automatically
228             granted to apps that target API levels below
229             {@link android.os.Build.VERSION_CODES#M} (before runtime permissions
230             were introduced). -->
231        <flag name="pre23" value="0x80" />
232        <!-- Additional flag from base permission type: this permission can be automatically
233            granted to system apps that install packages. -->
234        <flag name="installer" value="0x100" />
235        <!-- Additional flag from base permission type: this permission can be automatically
236            granted to system apps that verify packages. -->
237        <flag name="verifier" value="0x200" />
238        <!-- Additional flag from base permission type: this permission can be automatically
239            granted any application pre-installed on the system image (not just privileged
240            apps). -->
241        <flag name="preinstalled" value="0x400" />
242        <!-- Additional flag from base permission type: this permission can be automatically
243            granted to the setup wizard app -->
244        <flag name="setup" value="0x800" />
245        <!-- Additional flag from base permission type: this permission can be granted to instant
246             apps -->
247        <flag name="instant" value="0x1000" />
248        <!-- Additional flag from base permission type: this permission can only be granted to apps
249             that target runtime permissions ({@link android.os.Build.VERSION_CODES#M} and above)
250             -->
251        <flag name="runtime" value="0x2000" />
252    </attr>
253
254    <!-- Flags indicating more context for a permission group. -->
255    <attr name="permissionGroupFlags">
256        <!-- Set to indicate that this permission group contains permissions
257             protecting access to some information that is considered
258             personal to the user (such as contacts, e-mails, etc). -->
259        <flag name="personalInfo" value="0x0001" />
260    </attr>
261
262    <!-- Flags indicating more context for a permission. -->
263    <attr name="permissionFlags">
264        <!-- Set to indicate that this permission allows an operation that
265             may cost the user money.  Such permissions may be highlighted
266             when shown to the user with this additional information.  -->
267        <flag name="costsMoney" value="0x0001" />
268        <!-- Additional flag from base permission type: this permission has been
269             removed and it is no longer enforced. It shouldn't be shown in the
270             UI. Removed permissions are kept as normal permissions for backwards
271             compatibility as apps may be checking them before calling an API.
272        -->
273        <flag name="removed" value="0x2" />
274    </attr>
275
276    <!-- Specified the name of a group that this permission is associated
277         with.  The group must have been defined with the
278         {@link android.R.styleable#AndroidManifestPermissionGroup permission-group} tag. -->
279    <attr name="permissionGroup" format="string" />
280
281    <!-- Specify the name of a user ID that will be shared between multiple
282         packages.  By default, each package gets its own unique user-id.
283         By setting this value on two or more packages, each of these packages
284         will be given a single shared user ID, so they can for example run
285         in the same process.  Note that for them to actually get the same
286         user ID, they must also be signed with the same signature. -->
287    <attr name="sharedUserId" format="string" />
288
289    <!-- Specify a label for the shared user UID of this package.  This is
290         only used if you have also used android:sharedUserId.  This must
291         be a reference to a string resource; it can not be an explicit
292         string. -->
293    <attr name="sharedUserLabel" format="reference" />
294
295    <!-- Internal version code.  This is the number used to determine whether
296         one version is more recent than another: it has no other meaning than
297         that higher numbers are more recent.  You could use this number to
298         encode a "x.y" in the lower and upper 16 bits, make it a build
299         number, simply increase it by one each time a new version is
300         released, or define it however else you want, as long as each
301         successive version has a higher number.  This is not a version
302         number generally shown to the user, that is usually supplied
303         with {@link android.R.attr#versionName}.  When an app is delivered
304         as multiple split APKs, each APK must have the exact same versionCode. -->
305    <attr name="versionCode" format="integer" />
306
307    <!-- Internal revision code.  This number is the number used to determine
308         whether one APK is more recent than another: it has no other meaning
309         than that higher numbers are more recent.  This value is only meaningful
310         when the two {@link android.R.attr#versionCode} values are already
311         identical.  When an app is delivered as multiple split APKs, each
312         APK may have a different revisionCode value. -->
313    <attr name="revisionCode" format="integer" />
314
315    <!-- The text shown to the user to indicate the version they have.  This
316         is used for no other purpose than display to the user; the actual
317         significant version number is given by {@link android.R.attr#versionCode}. -->
318    <attr name="versionName" format="string" />
319
320    <!-- Flag to control special persistent mode of an application.  This should
321         not normally be used by applications; it requires that the system keep
322         your application running at all times. -->
323    <attr name="persistent" format="boolean" />
324
325    <!-- If set, the "persistent" attribute will only be honored if the feature
326         specified here is present on the device. -->
327    <attr name="persistentWhenFeatureAvailable" format="string" />
328
329    <!-- Flag to specify if this application needs to be present for all users. Only pre-installed
330         applications can request this feature. Default value is false. -->
331    <attr name="requiredForAllUsers" format="boolean" />
332
333    <!-- Flag indicating whether the application can be debugged, even when
334         running on a device that is running in user mode. -->
335    <attr name="debuggable" format="boolean" />
336
337    <!-- Flag indicating whether the application requests the VM to operate in
338         the safe mode.  -->
339    <attr name="vmSafeMode" format="boolean" />
340
341    <!-- <p>Flag indicating whether the application's rendering should be hardware
342         accelerated if possible. This flag is turned on by default for applications
343         that are targeting {@link android.os.Build.VERSION_CODES#ICE_CREAM_SANDWICH}
344         or later.</p>
345         <p>This flag can be set on the application and any activity declared
346         in the manifest. When enabled for the application, each activity is
347         automatically assumed to be hardware accelerated. This flag can be
348         overridden in the activity tags, either turning it off (if on for the
349         application) or on (if off for the application.)</p>
350         <p>When this flag is turned on for an activity (either directly or via
351         the application tag), every window created from the activity, including
352         the activity's own window, will be hardware accelerated, if possible.</p>
353         <p>Please refer to the documentation of
354         {@link android.view.WindowManager.LayoutParams#FLAG_HARDWARE_ACCELERATED}
355         for more information on how to control this flag programmatically.</p> -->
356    <attr name="hardwareAccelerated" format="boolean" />
357
358    <!-- Flag indicating whether the given application component is available
359         to other applications.  If false, it can only be accessed by
360         applications with its same user id (which usually means only by
361         code in its own package).  If true, it can be invoked by external
362         entities, though which ones can do so may be controlled through
363         permissions.  The default value is false for activity, receiver,
364         and service components that do not specify any intent filters; it
365         is true for activity, receiver, and service components that do
366         have intent filters (implying they expect to be invoked by others
367         who do not know their particular component name) and for all
368         content providers. -->
369    <attr name="exported" format="boolean" />
370
371    <!-- A boolean flag used to indicate if an application is a Game or not.
372         <p>This information can be used by the system to group together
373         applications that are classified as games, and display them separately
374         from the other applications. -->
375    <attr name="isGame" format="boolean" />
376
377    <!-- If set to true, a single instance of this component will run for
378         all users.  That instance will run as user 0, the default/primary
379         user.  When the app running is in processes for other users and interacts
380         with this component (by binding to a service for example) those processes will
381         always interact with the instance running for user 0.  Enabling
382         single user mode forces "exported" of the component to be false, to
383         help avoid introducing multi-user security bugs.  This feature is only
384         available to applications built in to the system image; you must hold the
385         permission INTERACT_ACROSS_USERS in order
386         to use this feature.  This flag can only be used with services,
387         receivers, and providers; it can not be used with activities. -->
388    <attr name="singleUser" format="boolean" />
389
390    <!-- Specify a specific process that the associated code is to run in.
391         Use with the application tag (to supply a default process for all
392         application components), or with the activity, receiver, service,
393         or provider tag (to supply a specific icon for that component).
394
395         <p>Application components are normally run in a single process that
396         is created for the entire application.  You can use this tag to modify
397         where they run.  If the process name begins with a ':' character,
398         a new process private to that application will be created when needed
399         to run that component (allowing you to spread your application across
400         multiple processes).  If the process name begins with a lower-case
401         character, the component will be run in a global process of that name,
402         provided that you have permission to do so, allowing multiple
403         applications to share one process to reduce resource usage. -->
404    <attr name="process" format="string" />
405
406    <!-- Specify a task name that activities have an "affinity" to.
407         Use with the application tag (to supply a default affinity for all
408         activities in the application), or with the activity tag (to supply
409         a specific affinity for that component).
410
411         <p>The default value for this attribute is the same as the package
412         name, indicating that all activities in the manifest should generally
413         be considered a single "application" to the user.  You can use this
414         attribute to modify that behavior: either giving them an affinity
415         for another task, if the activities are intended to be part of that
416         task from the user's perspective, or using an empty string for
417         activities that have no affinity to a task. -->
418    <attr name="taskAffinity" format="string" />
419
420    <!-- Specify that an activity can be moved out of a task it is in to
421         the task it has an affinity for when appropriate.  Use with the
422         application tag (to supply a default for all activities in the
423         application), or with an activity tag (to supply a specific
424         setting for that component).
425
426         <p>Normally when an application is started, it is associated with
427         the task of the activity that started it and stays there for its
428         entire lifetime.  You can use the allowTaskReparenting feature to force an
429         activity to be re-parented to a different task when the task it is
430         in goes to the background.  Typically this is used to cause the
431         activities of an application to move back to the main task associated
432         with that application.  The activity is re-parented to the task
433         with the same {@link android.R.attr#taskAffinity} as it has. -->
434    <attr name="allowTaskReparenting" format="boolean" />
435
436    <!-- Declare that this application may use cleartext traffic, such as HTTP rather than HTTPS;
437         WebSockets rather than WebSockets Secure; XMPP, IMAP, STMP without STARTTLS or TLS.
438         Defaults to true. If set to false {@code false}, the application declares that it does not
439         intend to use cleartext network traffic, in which case platform components (e.g. HTTP
440         stacks, {@code DownloadManager}, {@code MediaPlayer}) will refuse applications's requests
441         to use cleartext traffic. Third-party libraries are encouraged to honor this flag as well.
442         -->
443    <attr name="usesCleartextTraffic" format="boolean" />
444
445    <!-- Declare that code from this application will need to be loaded into other
446         applications' processes. On devices that support multiple instruction sets,
447         this implies the code might be loaded into a process that's using any of the devices
448         supported instruction sets.
449
450         <p> The system might treat such applications specially, for eg., by
451         extracting the application's native libraries for all supported instruction
452         sets or by compiling the application's dex code for all supported instruction
453         sets. -->
454    <attr name="multiArch" format ="boolean" />
455
456    <!-- Specify whether the 32 bit version of the ABI should be used in a
457         multiArch application. If both abioverride flag (i.e. using abi option of abd install)
458         and use32bitAbi are used, then use32bit is ignored.-->
459    <attr name="use32bitAbi" />
460
461    <!-- Specify whether a component is allowed to have multiple instances
462         of itself running in different processes.  Use with the activity
463         and provider tags.
464
465         <p>Normally the system will ensure that all instances of a particular
466         component are only running in a single process.  You can use this
467         attribute to disable that behavior, allowing the system to create
468         instances wherever they are used (provided permissions allow it).
469         This is most often used with content providers, so that instances
470         of a provider can be created in each client process, allowing them
471         to be used without performing IPC.  -->
472    <attr name="multiprocess" format="boolean" />
473
474    <!-- Specify whether an activity should be finished when its task is
475         brought to the foreground by relaunching from the home screen.
476
477         <p>If both this option and {@link android.R.attr#allowTaskReparenting} are
478         specified, the finish trumps the affinity: the affinity will be
479         ignored and the activity simply finished. -->
480    <attr name="finishOnTaskLaunch" format="boolean" />
481
482    <!-- Specify whether an activity should be finished when a "close system
483         windows" request has been made.  This happens, for example, when
484         the home key is pressed, when the device is locked, when a system
485         dialog showing recent applications is displayed, etc. -->
486    <attr name="finishOnCloseSystemDialogs" format="boolean" />
487
488    <!-- Specify whether an activity's task should be cleared when it
489         is re-launched from the home screen.  As a result, every time the
490         user starts the task, they will be brought to its root activity,
491         regardless of whether they used BACK or HOME to last leave it.
492         This flag only applies to activities that
493         are used to start the root of a new task.
494
495         <p>An example of the use of this flag would be for the case where
496         a user launches activity A from home, and from there goes to
497         activity B.  They now press home, and then return to activity A.
498         Normally they would see activity B, since that is what they were
499         last doing in A's task.  However, if A has set this flag to true,
500         then upon going to the background all of the tasks on top of it (B
501         in this case) are removed, so when the user next returns to A they
502         will restart at its original activity.
503
504         <p>When this option is used in conjunction with
505         {@link android.R.attr#allowTaskReparenting}, the allowTaskReparenting trumps the
506         clear.  That is, all activities above the root activity of the
507         task will be removed: those that have an affinity will be moved
508         to the task they are associated with, otherwise they will simply
509         be dropped as described here. -->
510    <attr name="clearTaskOnLaunch" format="boolean" />
511
512    <!-- Specify whether an activity should be kept in its history stack.
513         If this attribute is set, then as soon as the user navigates away
514         from the activity it will be finished and they will no longer be
515         able to return to it. -->
516    <attr name="noHistory" format="boolean" />
517
518    <!-- Specify whether an acitivty's task state should always be maintained
519         by the system, or if it is allowed to reset the task to its initial
520         state in certain situations.
521
522         <p>Normally the system will reset a task (remove all activities from
523         the stack and reset the root activity) in certain situations when
524         the user re-selects that task from the home screen.  Typically this
525         will be done if the user hasn't visited that task for a certain
526         amount of time, such as 30 minutes.
527
528         <p>By setting this attribute, the user will always return to your
529         task in its last state, regardless of how they get there.  This is
530         useful, for example, in an application like the web browser where there
531         is a lot of state (such as multiple open tabs) that the application
532         would not like to lose. -->
533    <attr name="alwaysRetainTaskState" format="boolean" />
534
535    <!-- Indicates that an Activity does not need to have its freeze state
536         (as returned by {@link android.app.Activity#onSaveInstanceState}
537         retained in order to be restarted.  Generally you use this for activities
538         that do not store any state.  When this flag is set, if for some reason
539         the activity is killed before it has a chance to save its state,
540         then the system will not remove it from the activity stack like
541         it normally would.  Instead, the next time the user navigates to
542         it its {@link android.app.Activity#onCreate} method will be called
543         with a null icicle, just like it was starting for the first time.
544
545         <p>This is used by the Home activity to make sure it does not get
546         removed if it crashes for some reason. -->
547    <attr name="stateNotNeeded" format="boolean" />
548
549    <!-- Indicates that an Activity should be excluded from the list of
550         recently launched activities. -->
551    <attr name="excludeFromRecents" format="boolean" />
552
553    <!-- Specify that an Activity should be shown over the lock screen and,
554         in a multiuser environment, across all users' windows.
555         @deprecated use {@link android.R.attr#showForAllUsers} instead. -->
556    <attr name="showOnLockScreen" format="boolean" />
557
558    <!-- Specify that an Activity should be shown even if the current/foreground user
559         is different from the user of the Activity. This will also force the
560         <code>android.view.LayoutParams.FLAG_SHOW_WHEN_LOCKED</code> flag
561         to be set for all windows of this activity -->
562    <attr name="showForAllUsers" format="boolean" />
563
564    <!-- Specifies whether an {@link android.app.Activity} should be shown on top of the the lock screen
565         whenever the lockscreen is up and the activity is resumed. Normally an activity will be
566         transitioned to the stopped state if it is started while the lockscreen is up, but with
567         this flag set the activity will remain in the resumed state visible on-top of the lock
568         screen.
569
570         <p>This should be used instead of {@link android.view.WindowManager.LayoutParams#FLAG_SHOW_WHEN_LOCKED}
571         flag set for Windows. When using the Window flag during activity startup, there may not be
572         time to add it before the system stops your activity for being behind the lock-screen.
573         This leads to a double life-cycle as it is then restarted.</p> -->
574    <attr name="showWhenLocked" format="boolean" />
575
576    <!-- Specifies whether the screen should be turned on when the {@link android.app.Activity} is resumed.
577         Normally an activity will be transitioned to the stopped state if it is started while the
578         screen if off, but with this flag set the activity will cause the screen to turn on if the
579         activity will be visible and resumed due to the screen coming on. The screen will not be
580         turned on if the activity won't be visible after the screen is turned on. This flag is
581         normally used in conjunction with the {@link android.R.attr#showWhenLocked} flag to make
582         sure the activity is visible after the screen is turned on when the lockscreen is up. In
583         addition, if this flag is set and the activity calls
584         {@link android.app.KeyguardManager#requestDismissKeyguard}
585         the screen will turn on.
586
587         <p>This should be used instead of {@link android.view.WindowManager.LayoutParams#FLAG_TURN_SCREEN_ON}
588         flag set for Windows. When using the Window flag during activity startup, there may not be
589         time to add it before the system stops your activity because the screen has not yet turned
590         on. This leads to a double life-cycle as it is then restarted.</p> -->
591    <attr name="turnScreenOn" format="boolean" />
592
593    <!-- Specify the authorities under which this content provider can be
594         found.  Multiple authorities may be supplied by separating them
595         with a semicolon.  Authority names should use a Java-style naming
596         convention (such as <code>com.google.provider.MyProvider</code>)
597         in order to avoid conflicts.  Typically this name is the same
598         as the class implementation describing the provider's data structure. -->
599    <attr name="authorities" format="string" />
600
601    <!-- Flag indicating whether this content provider would like to
602         participate in data synchronization. -->
603    <attr name="syncable" format="boolean" />
604
605    <!-- Flag declaring this activity to be 'immersive'; immersive activities
606         should not be interrupted with other activities or notifications. -->
607    <attr name="immersive" format="boolean" />
608
609    <!-- Flag declaring that this activity will be run in VR mode, and specifying
610         the component of the {@link android.service.vr.VrListenerService} that should be
611         bound while this Activity is visible if it is installed and enabled on this device.
612         This is equivalent to calling {@link android.app.Activity#setVrModeEnabled} with the
613         the given component name within the Activity that this attribute is set for.
614         Declaring this will prevent the system from leaving VR mode during an Activity
615         transtion from one VR activity to another. -->
616    <attr name="enableVrMode" format="string" />
617
618    <!-- Flag allowing the activity to specify which screen rotation animation
619         it desires.  Valid values are "rotate", "crossfade", and "jumpcut"
620         as described in {@link android.view.WindowManager.LayoutParams#rotationAnimation}.
621         Specifying your Rotation animation in the WindowManager.LayoutParams
622         may be racy with app startup and updattransitions occuring during application startup and thusly
623         the manifest attribute is preferred.
624    -->
625    <attr name="rotationAnimation">
626      <flag name="rotate" value= "0" />
627      <flag name="crossfade" value = "1" />
628      <flag name="jumpcut" value = "2" />
629      <flag name="seamless" value = "3" />
630    </attr>
631
632    <!-- Specify the order in which content providers hosted by a process
633         are instantiated when that process is created.  Not needed unless
634         you have providers with dependencies between each other, to make
635         sure that they are created in the order needed by those dependencies.
636         The value is a simple integer, with higher numbers being
637         initialized first. -->
638    <attr name="initOrder" format="integer" />
639
640    <!-- Specify the relative importance or ability in handling a particular
641         Intent.  For receivers, this controls the order in which they are
642         executed to receive a broadcast (note that for
643         asynchronous broadcasts, this order is ignored).  For activities,
644         this provides information about how good an activity is handling an
645         Intent; when multiple activities match an intent and have different
646         priorities, only those with the higher priority value will be
647         considered a match.
648
649         <p>Only use if you really need to impose some specific
650         order in which the broadcasts are received, or want to forcibly
651         place an activity to always be preferred over others.  The value is a
652         single integer, with higher numbers considered to be better. -->
653    <attr name="priority" format="integer" />
654
655    <!-- Indicate if this component is aware of direct boot lifecycle, and can be
656         safely run before the user has entered their credentials (such as a lock
657         pattern or PIN). -->
658    <attr name="directBootAware" format="boolean" />
659
660    <!-- Specify how an activity should be launched.  See the
661         <a href="{@docRoot}guide/topics/fundamentals/tasks-and-back-stack.html">Tasks and Back
662         Stack</a> document for important information on how these options impact
663         the behavior of your application.
664
665         <p>If this attribute is not specified, <code>standard</code> launch
666         mode will be used.  Note that the particular launch behavior can
667         be changed in some ways at runtime through the
668         {@link android.content.Intent} flags
669         {@link android.content.Intent#FLAG_ACTIVITY_SINGLE_TOP},
670         {@link android.content.Intent#FLAG_ACTIVITY_NEW_TASK}, and
671         {@link android.content.Intent#FLAG_ACTIVITY_MULTIPLE_TASK}. -->
672    <attr name="launchMode">
673        <!-- The default mode, which will usually create a new instance of
674             the activity when it is started, though this behavior may change
675             with the introduction of other options such as
676             {@link android.content.Intent#FLAG_ACTIVITY_NEW_TASK
677             Intent.FLAG_ACTIVITY_NEW_TASK}. -->
678        <enum name="standard" value="0" />
679        <!-- If, when starting the activity, there is already an
680            instance of the same activity class in the foreground that is
681            interacting with the user, then
682            re-use that instance.  This existing instance will receive a call to
683            {@link android.app.Activity#onNewIntent Activity.onNewIntent()} with
684            the new Intent that is being started. -->
685        <enum name="singleTop" value="1" />
686        <!-- If, when starting the activity, there is already a task running
687            that starts with this activity, then instead of starting a new
688            instance the current task is brought to the front.  The existing
689            instance will receive a call to {@link android.app.Activity#onNewIntent
690            Activity.onNewIntent()}
691            with the new Intent that is being started, and with the
692            {@link android.content.Intent#FLAG_ACTIVITY_BROUGHT_TO_FRONT
693            Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT} flag set.  This is a superset
694            of the singleTop mode, where if there is already an instance
695            of the activity being started at the top of the stack, it will
696            receive the Intent as described there (without the
697            FLAG_ACTIVITY_BROUGHT_TO_FRONT flag set).  See the
698            <a href="{@docRoot}guide/topics/fundamentals/tasks-and-back-stack.html">Tasks and Back
699            Stack</a> document for more details about tasks.-->
700        <enum name="singleTask" value="2" />
701        <!-- Only allow one instance of this activity to ever be
702            running.  This activity gets a unique task with only itself running
703            in it; if it is ever launched again with the same Intent, then that
704            task will be brought forward and its
705            {@link android.app.Activity#onNewIntent Activity.onNewIntent()}
706            method called.  If this
707            activity tries to start a new activity, that new activity will be
708            launched in a separate task.  See the
709            <a href="{@docRoot}guide/topics/fundamentals/tasks-and-back-stack.html">Tasks and Back
710            Stack</a> document for more details about tasks.-->
711        <enum name="singleInstance" value="3" />
712    </attr>
713
714    <!-- Specify the orientation an activity should be run in.  If not
715         specified, it will run in the current preferred orientation
716         of the screen.
717         <p>This attribute is supported by the <a
718            href="{@docRoot}guide/topics/manifest/activity-element.html">{@code <activity>}</a>
719            element. -->
720    <attr name="screenOrientation">
721        <!-- No preference specified: let the system decide the best
722             orientation.  This will either be the orientation selected
723             by the activity below, or the user's preferred orientation
724             if this activity is the bottom of a task. If the user
725             explicitly turned off sensor based orientation through settings
726             sensor based device rotation will be ignored. If not by default
727             sensor based orientation will be taken into account and the
728             orientation will changed based on how the user rotates the device.
729             Corresponds to
730             {@link android.content.pm.ActivityInfo#SCREEN_ORIENTATION_UNSPECIFIED}. -->
731        <enum name="unspecified" value="-1" />
732        <!-- Would like to have the screen in a landscape orientation: that
733             is, with the display wider than it is tall, ignoring sensor data.
734             Corresponds to
735             {@link android.content.pm.ActivityInfo#SCREEN_ORIENTATION_LANDSCAPE}. -->
736        <enum name="landscape" value="0" />
737        <!-- Would like to have the screen in a portrait orientation: that
738             is, with the display taller than it is wide, ignoring sensor data.
739             Corresponds to
740             {@link android.content.pm.ActivityInfo#SCREEN_ORIENTATION_PORTRAIT}. -->
741        <enum name="portrait" value="1" />
742        <!-- Use the user's current preferred orientation of the handset.
743             Corresponds to
744             {@link android.content.pm.ActivityInfo#SCREEN_ORIENTATION_USER}. -->
745        <enum name="user" value="2" />
746        <!-- Keep the screen in the same orientation as whatever is behind
747             this activity.
748             Corresponds to
749             {@link android.content.pm.ActivityInfo#SCREEN_ORIENTATION_BEHIND}. -->
750        <enum name="behind" value="3" />
751        <!-- Orientation is determined by a physical orientation sensor:
752             the display will rotate based on how the user moves the device.
753             Ignores user's setting to turn off sensor-based rotation.
754             Corresponds to
755             {@link android.content.pm.ActivityInfo#SCREEN_ORIENTATION_SENSOR}. -->
756        <enum name="sensor" value="4" />
757        <!-- Always ignore orientation determined by orientation sensor:
758             the display will not rotate when the user moves the device.
759             Corresponds to
760             {@link android.content.pm.ActivityInfo#SCREEN_ORIENTATION_NOSENSOR}. -->
761        <enum name="nosensor" value="5" />
762        <!-- Would like to have the screen in landscape orientation, but can
763             use the sensor to change which direction the screen is facing.
764             Corresponds to
765             {@link android.content.pm.ActivityInfo#SCREEN_ORIENTATION_SENSOR_LANDSCAPE}. -->
766        <enum name="sensorLandscape" value="6" />
767        <!-- Would like to have the screen in portrait orientation, but can
768             use the sensor to change which direction the screen is facing.
769             Corresponds to
770             {@link android.content.pm.ActivityInfo#SCREEN_ORIENTATION_SENSOR_PORTRAIT}. -->
771        <enum name="sensorPortrait" value="7" />
772        <!-- Would like to have the screen in landscape orientation, turned in
773             the opposite direction from normal landscape.
774             Corresponds to
775             {@link android.content.pm.ActivityInfo#SCREEN_ORIENTATION_REVERSE_LANDSCAPE}. -->
776        <enum name="reverseLandscape" value="8" />
777        <!-- Would like to have the screen in portrait orientation, turned in
778             the opposite direction from normal portrait.
779             Corresponds to
780             {@link android.content.pm.ActivityInfo#SCREEN_ORIENTATION_REVERSE_PORTRAIT}. -->
781        <enum name="reversePortrait" value="9" />
782        <!-- Orientation is determined by a physical orientation sensor:
783             the display will rotate based on how the user moves the device.
784             This allows any of the 4 possible rotations, regardless of what
785             the device will normally do (for example some devices won't
786             normally use 180 degree rotation).
787             Corresponds to
788             {@link android.content.pm.ActivityInfo#SCREEN_ORIENTATION_FULL_SENSOR}. -->
789        <enum name="fullSensor" value="10" />
790        <!-- Would like to have the screen in landscape orientation, but if
791             the user has enabled sensor-based rotation then we can use the
792             sensor to change which direction the screen is facing.
793             Corresponds to
794             {@link android.content.pm.ActivityInfo#SCREEN_ORIENTATION_USER_LANDSCAPE}. -->
795        <enum name="userLandscape" value="11" />
796        <!-- Would like to have the screen in portrait orientation, but if
797             the user has enabled sensor-based rotation then we can use the
798             sensor to change which direction the screen is facing.
799             Corresponds to
800             {@link android.content.pm.ActivityInfo#SCREEN_ORIENTATION_USER_PORTRAIT}. -->
801        <enum name="userPortrait" value="12" />
802        <!-- Respect the user's sensor-based rotation preference, but if
803             sensor-based rotation is enabled then allow the screen to rotate
804             in all 4 possible directions regardless of what
805             the device will normally do (for example some devices won't
806             normally use 180 degree rotation).
807             Corresponds to
808             {@link android.content.pm.ActivityInfo#SCREEN_ORIENTATION_FULL_USER}. -->
809        <enum name="fullUser" value="13" />
810        <!-- Screen is locked to its current rotation, whatever that is.
811             Corresponds to
812             {@link android.content.pm.ActivityInfo#SCREEN_ORIENTATION_LOCKED}. -->
813        <enum name="locked" value="14" />
814    </attr>
815
816    <!-- Specify the configuration changes that trigger the system to recreate the
817         current activity if any of these configuration changes happen in the system.
818         The valid configuration changes include mcc and mnc which are the same with
819         those in configChanges. By default from Android O, we don't recreate the activity
820         even the app doesn't specify mcc or mnc in configChanges. If the app wants to
821         be recreated, specify them in recreateOnConfigChanges. -->
822    <attr name="recreateOnConfigChanges">
823        <!-- The IMSI MCC has changed, that is a SIM has been detected and
824             updated the Mobile Country Code. -->
825        <flag name="mcc" value="0x0001" />
826        <!-- The IMSI MNC has changed, that is a SIM has been detected and
827             updated the Mobile Network Code. -->
828        <flag name="mnc" value="0x0002" />
829    </attr>
830
831    <!-- Specify one or more configuration changes that the activity will
832         handle itself.  If not specified, the activity will be restarted
833         if any of these configuration changes happen in the system.  Otherwise,
834         the activity will remain running and its
835         {@link android.app.Activity#onConfigurationChanged Activity.onConfigurationChanged}
836         method called with the new configuration.
837
838         <p>Note that all of these configuration changes can impact the
839         resource values seen by the application, so you will generally need
840         to re-retrieve all resources (including view layouts, drawables, etc)
841         to correctly handle any configuration change.
842
843         <p>These values must be kept in sync with those in
844         {@link android.content.pm.ActivityInfo} and
845         include/utils/ResourceTypes.h. -->
846    <attr name="configChanges">
847        <!-- The IMSI MCC has changed, that is a SIM has been detected and
848             updated the Mobile Country Code. By default from Android O, we
849             don't recreate the activity even the app doesn't specify mcc in
850             configChanges. If the app wants to recreate the activity, specify
851             mcc in recreateOnConfigChanges. -->
852        <flag name="mcc" value="0x0001" />
853        <!-- The IMSI MNC has changed, that is a SIM has been detected and
854             updated the Mobile Network Code. By default from Android O, we
855             don't recreate the activity even the app doesn't specify mnc in
856             configChanges. If the app wants to recreate the acvitity, specify
857             mnc in recreateOnConfigChanges. -->
858        <flag name="mnc" value="0x0002" />
859        <!-- The locale has changed, that is the user has selected a new
860             language that text should be displayed in. -->
861        <flag name="locale" value="0x0004" />
862        <!-- The touchscreen has changed.  Should never normally happen. -->
863        <flag name="touchscreen" value="0x0008" />
864        <!-- The keyboard type has changed, for example the user has plugged
865             in an external keyboard. -->
866        <flag name="keyboard" value="0x0010" />
867        <!-- The keyboard or navigation accessibility has changed, for example
868             the user has slid the keyboard out to expose it.  Note that
869             despite its name, this applied to any accessibility: keyboard
870             or navigation. -->
871        <flag name="keyboardHidden" value="0x0020" />
872        <!-- The navigation type has changed.  Should never normally happen. -->
873        <flag name="navigation" value="0x0040" />
874        <!-- The screen orientation has changed, that is the user has
875             rotated the device. -->
876        <flag name="orientation" value="0x0080" />
877        <!-- The screen layout has changed.  This might be caused by a
878             different display being activated. -->
879        <flag name="screenLayout" value="0x0100" />
880        <!-- The global user interface mode has changed.  For example,
881             going in or out of car mode, night mode changing, etc. -->
882        <flag name="uiMode" value="0x0200" />
883        <!-- The current available screen size has changed.  If applications don't
884             target at least {@link android.os.Build.VERSION_CODES#HONEYCOMB_MR2}
885             then the activity will always handle this itself (the change
886             will not result in a restart).  This represents a change in the
887             currently available size, so will change when the user switches
888             between landscape and portrait. -->
889        <flag name="screenSize" value="0x0400" />
890        <!-- The physical screen size has changed.  If applications don't
891             target at least {@link android.os.Build.VERSION_CODES#HONEYCOMB_MR2}
892             then the activity will always handle this itself (the change
893             will not result in a restart).  This represents a change in size
894             regardless of orientation, so will only change when the actual
895             physical screen size has changed such as switching to an external
896             display. -->
897        <flag name="smallestScreenSize" value="0x0800" />
898        <!-- The display density has changed. This might be caused by the user
899             specifying a different display scale, or it might be caused by a
900             different display being activated. -->
901        <flag name="density" value="0x1000" />
902        <!-- The layout direction has changed. For example going from LTR to RTL. -->
903        <flag name="layoutDirection" value="0x2000" />
904        <!-- The color mode of the screen has changed (color gamut or dynamic range). -->
905        <flag name="colorMode" value="0x4000" />
906        <!-- The font scaling factor has changed, that is the user has
907             selected a new global font size. -->
908        <flag name="fontScale" value="0x40000000" />
909    </attr>
910
911    <!-- Indicate that the activity can be launched as the embedded child of another
912         activity. Particularly in the case where the child lives in a container
913         such as a Display owned by another activity.
914
915         <p>The default value of this attribute is <code>false</code>. -->
916    <attr name="allowEmbedded" format="boolean" />
917
918    <!-- Descriptive text for the associated data. -->
919    <attr name="description" format="reference" />
920
921    <!-- The name of the application package that an Instrumentation object
922         will run against. -->
923    <attr name="targetPackage" format="string" />
924
925    <!-- The name of an application's processes that an Instrumentation object
926         will run against.  If not specified, only runs in the main process of the targetPackage.
927         Can either be a comma-separated list of process names or '*' for any process that
928         launches to run targetPackage code. -->
929    <attr name="targetProcesses" format="string" />
930
931    <!-- Flag indicating that an Instrumentation class wants to take care
932         of starting/stopping profiling itself, rather than relying on
933         the default behavior of profiling the complete time it is running.
934         This allows it to target profiling data at a specific set of
935         operations. -->
936    <attr name="handleProfiling" format="boolean" />
937
938    <!-- Flag indicating that an Instrumentation class should be run as a
939         functional test. -->
940    <attr name="functionalTest" format="boolean" />
941
942    <!-- The touch screen type used by an application. -->
943    <attr name="reqTouchScreen">
944        <enum name="undefined" value="0" />
945        <enum name="notouch" value="1" />
946        <enum name="stylus" value="2" />
947        <enum name="finger" value="3" />
948    </attr>
949
950    <!-- The input method preferred by an application. -->
951    <attr name="reqKeyboardType">
952        <enum name="undefined" value="0" />
953        <enum name="nokeys" value="1" />
954        <enum name="qwerty" value="2" />
955        <enum name="twelvekey" value="3" />
956    </attr>
957
958    <!-- Application's requirement for a hard keyboard -->
959    <attr name="reqHardKeyboard" format="boolean" />
960
961    <!-- The navigation device preferred by an application. -->
962    <attr name="reqNavigation">
963        <enum name="undefined" value="0" />
964        <enum name="nonav" value="1" />
965        <enum name="dpad" value="2" />
966        <enum name="trackball" value="3" />
967        <enum name="wheel" value="4" />
968    </attr>
969
970    <!-- Application's requirement for five way navigation -->
971    <attr name="reqFiveWayNav" format="boolean" />
972
973    <!-- The name of the class subclassing <code>BackupAgent</code> to manage
974         backup and restore of the application's data on external storage. -->
975    <attr name="backupAgent" format="string" />
976
977    <!-- Whether to allow the application to participate in the backup
978         and restore infrastructure.  If this attribute is set to <code>false</code>,
979         no backup or restore of the application will ever be performed, even by a
980         full-system backup that would otherwise cause all application data to be saved
981         via adb.  The default value of this attribute is <code>true</code>. -->
982    <attr name="allowBackup" format="boolean" />
983
984    <!-- Applications will set this in their manifest to opt-in to or out of full app data back-up
985         and restore. Alternatively they can set it to an xml resource within their app that will
986         be parsed by the BackupAgent to selectively backup files indicated within that xml. -->
987    <attr name="fullBackupContent" format="reference|boolean" />
988
989    <!-- Indicates that even though the application provides a <code>BackupAgent</code>,
990         only full-data streaming backup operations are to be performed to save the app's
991         data.  This lets the app rely on full-data backups while still participating in
992         the backup and restore process via the BackupAgent's full-data backup APIs.
993         When this attribute is <code>true</code> the app's BackupAgent overrides of
994         the onBackup() and onRestore() callbacks can be empty stubs. -->
995    <attr name="fullBackupOnly" format="boolean" />
996
997    <!-- Whether the application in question should be terminated after its
998         settings have been restored during a full-system restore operation.
999         Single-package restore operations will never cause the application to
1000         be shut down.  Full-system restore operations typically only occur once,
1001         when the phone is first set up.  Third-party applications will not usually
1002         need to use this attribute.
1003
1004         <p>The default is <code>true</code>, which means that after the application
1005         has finished processing its data during a full-system restore, it will be
1006         terminated. -->
1007    <attr name="killAfterRestore" format="boolean" />
1008
1009    <!-- @deprecated This attribute is not used by the Android operating system. -->
1010    <attr name="restoreNeedsApplication" format="boolean" />
1011
1012    <!-- Indicate that the application is prepared to attempt a restore of any
1013         backed-up dataset, even if the backup is apparently from a newer version
1014         of the application than is currently installed on the device.  Setting
1015         this attribute to <code>true</code> will permit the Backup Manager to
1016         attempt restore even when a version mismatch suggests that the data are
1017         incompatible.  <em>Use with caution!</em>
1018
1019         <p>The default value of this attribute is <code>false</code>. -->
1020    <attr name="restoreAnyVersion" format="boolean" />
1021
1022    <!-- Indicates that full-data backup operations for this application may
1023         be performed even if the application is in a foreground-equivalent
1024         state.  <em>Use with caution!</em>  Setting this flag to <code>true</code>
1025         can impact app behavior while the user is interacting with the device.
1026
1027         <p>If unspecified, the default value of this attribute is <code>false</code>,
1028         which means that the OS will avoid backing up the application while it is
1029         running in the foreground (such as a music app that is actively playing
1030         music via a service in the startForeground() state). -->
1031    <attr name="backupInForeground" format="boolean" />
1032
1033    <!-- The default install location defined by an application. -->
1034    <attr name="installLocation">
1035        <!-- Let the system decide ideal install location -->
1036        <enum name="auto" value="0" />
1037        <!-- Explicitly request to be installed on internal phone storage
1038             only. -->
1039        <enum name="internalOnly" value="1" />
1040        <!-- Prefer to be installed on SD card. There is no guarantee that
1041             the system will honor this request. The application might end
1042             up being installed on internal storage if external media
1043             is unavailable or too full. -->
1044        <enum name="preferExternal" value="2" />
1045    </attr>
1046
1047    <!-- If set to <code>true</code>, indicates to the platform that any split APKs
1048         installed for this application should be loaded into their own Context
1049         objects and not appear in the base application's Context.
1050
1051         <p>The default value of this attribute is <code>false</code>. -->
1052    <attr name="isolatedSplits" format="boolean" />
1053
1054    <!-- The classname of the classloader used to load the application's classes
1055         from its APK. The APK in question can either be the 'base' APK or any
1056         of the application's 'split' APKs if it's using a feature split.
1057
1058         <p>
1059         The supported values for this attribute are
1060         <code>dalvik.system.PathClassLoader</code> and
1061         <code>dalvik.system.DelegateLastClassLoader</code>. If unspecified,
1062         the default value of this attribute is <code>dalvik.system.PathClassLoader</code>.
1063
1064         If an unknown classloader is provided, a PackageParserException with cause
1065         <code>PackageManager.INSTALL_PARSE_FAILED_MANIFEST_MALFORMED</code> will be
1066         thrown and the app will not be installed.
1067         -->
1068    <attr name="classLoader" format="string" />
1069
1070    <!-- If set to <code>true</code>, indicates to the platform that this APK is
1071         a 'feature' split and that it implicitly depends on the base APK. This distinguishes
1072         this split APK from a 'configuration' split, which provides resource overrides
1073         for a particular 'feature' split. Only useful when the base APK specifies
1074         <code>android:isolatedSplits="true"</code>.
1075
1076         <p>The default value of this attribute is <code>false</code>. -->
1077    <attr name="isFeatureSplit" format="boolean" />
1078
1079    <!-- Extra options for an activity's UI. Applies to either the {@code <activity>} or
1080         {@code <application>} tag. If specified on the {@code <application>}
1081         tag these will be considered defaults for all activities in the
1082         application. -->
1083    <attr name="uiOptions">
1084        <!-- No extra UI options. This is the default. -->
1085        <flag name="none" value="0" />
1086        <!-- Split the options menu into a separate bar at the bottom of
1087             the screen when severely constrained for horizontal space.
1088             (e.g. portrait mode on a phone.) Instead of a small number
1089             of action buttons appearing in the action bar at the top
1090             of the screen, the action bar will split into the top navigation
1091             section and the bottom menu section. Menu items will not be
1092             split across the two bars; they will always appear together. -->
1093        <flag name="splitActionBarWhenNarrow" value="1" />
1094    </attr>
1095
1096    <!-- The name of the logical parent of the activity as it appears in the manifest. -->
1097    <attr name="parentActivityName" format="string" />
1098
1099    <!-- Define how an activity persist across reboots. Activities defined as "never" will not
1100         be persisted. Those defined as "always" will be persisted. Those defined as "taskOnly"
1101         will persist the root activity of the task only. See below for more detail as to
1102         what gets persisted. -->
1103    <attr name="persistableMode">
1104        <!-- The default. If this activity forms the root of a task then that task will be
1105             persisted across reboots but only the launching intent will be used. If the task
1106             relinquishes its identity then the intent used is that of the topmost inherited
1107             identity. All activities above this activity in the task will not be persisted.
1108             In addition this activity will not be passed a PersistableBundle into which it
1109             could have stored its state. -->
1110        <enum name="persistRootOnly" value="0" />
1111        <!-- If this activity forms the root of a task then that task will not be persisted
1112             across reboots -->
1113        <enum name="persistNever" value="1" />
1114        <!-- If this activity forms the root of a task then the task and this activity will
1115             be persisted across reboots. If the activity above this activity is also
1116             tagged with the attribute <code>"persist"</code> then it will be persisted as well.
1117             And so on up the task stack until either an activity without the
1118             <code>persistableMode="persistAcrossReboots"</code> attribute or one that was launched
1119             with the flag Intent.FLAG_CLEAR_TASK_WHEN_RESET is encountered.
1120
1121             <p>Activities that are declared with the persistAcrossReboots attribute will be
1122             provided with a PersistableBundle in onSavedInstanceState(), These activities may
1123             use this PeristableBundle to save their state. Then, following a reboot, that
1124             PersistableBundle will be provided back to the activity in its onCreate() method. -->
1125        <enum name="persistAcrossReboots" value="2" />
1126    </attr>
1127
1128    <!-- This attribute specifies that an activity shall become the root activity of a
1129         new task each time it is launched. Using this attribute permits the user to
1130         have multiple documents from the same applications appear in the recent tasks list.
1131
1132         <p>Such a document is any kind of item for which an application may want to
1133         maintain multiple simultaneous instances. Examples might be text files, web
1134         pages, spreadsheets, or emails. Each such document will be in a separate
1135         task in the recent taskss list.
1136
1137         <p>This attribute is equivalent to adding the flag {@link
1138         android.content.Intent#FLAG_ACTIVITY_NEW_DOCUMENT} to every Intent used to launch
1139         the activity.
1140
1141         <p>The documentLaunchMode attribute may be assigned one of four values, "none",
1142         "intoExisting", "always" and "never", described in detail below. For values other than
1143         <code>none</code> and <code>never</code> the activity must be defined with
1144         {@link android.R.attr#launchMode} <code>standard</code>.
1145         If this attribute is not specified, <code>none</code> will be used.
1146         Note that <code>none</code> can be overridden at run time if the Intent used
1147         to launch it contains the flag {@link android.content.Intent#FLAG_ACTIVITY_NEW_DOCUMENT
1148         Intent.FLAG_ACTIVITY_NEW_DOCUMENT}.
1149         Similarly <code>intoExisting</code> will be overridden by the flag
1150         {@link android.content.Intent#FLAG_ACTIVITY_NEW_DOCUMENT
1151         Intent.FLAG_ACTIVITY_NEW_DOCUMENT} combined with
1152         {@link android.content.Intent#FLAG_ACTIVITY_MULTIPLE_TASK
1153         Intent.FLAG_ACTIVITY_MULTIPLE_TASK}. If the value of
1154         documentLaunchModes is <code>never</code> then any use of
1155         {@link android.content.Intent#FLAG_ACTIVITY_NEW_DOCUMENT
1156         Intent.FLAG_ACTIVITY_NEW_DOCUMENT} to launch this activity will be ignored. -->
1157    <attr name="documentLaunchMode">
1158        <!-- The default mode, which will create a new task only when
1159             {@link android.content.Intent#FLAG_ACTIVITY_NEW_TASK
1160             Intent.FLAG_ACTIVITY_NEW_TASK} is set. -->
1161        <enum name="none" value="0" />
1162        <!-- All tasks will be searched for one whose base Intent's ComponentName and
1163             data URI match those of the launching Intent. If such a task is found
1164             that task will be cleared and restarted with the root activity receiving a call
1165             to {@link android.app.Activity#onNewIntent Activity.onNewIntent}. If no
1166             such task is found a new task will be created.
1167             <p>This is the equivalent of launching an activity with {@link
1168             android.content.Intent#FLAG_ACTIVITY_NEW_DOCUMENT Intent.FLAG_ACTIVITY_NEW_DOCUMENT}
1169             set and without {@link android.content.Intent#FLAG_ACTIVITY_MULTIPLE_TASK
1170             Intent.FLAG_ACTIVITY_MULTIPLE_TASK} set. -->
1171        <enum name="intoExisting" value="1" />
1172        <!-- A new task rooted at this activity will be created. This will happen whether or
1173             not there is an existing task whose ComponentName and data URI match
1174             that of the launcing intent This is the equivalent of launching an activity
1175             with {@link
1176             android.content.Intent#FLAG_ACTIVITY_NEW_DOCUMENT Intent.FLAG_ACTIVITY_NEW_DOCUMENT}
1177             and {@link android.content.Intent#FLAG_ACTIVITY_MULTIPLE_TASK
1178             Intent.FLAG_ACTIVITY_MULTIPLE_TASK} both set. -->
1179        <enum name="always" value="2" />
1180        <!-- This activity will not be launched into a new document even if the Intent contains
1181             {@link android.content.Intent#FLAG_ACTIVITY_NEW_DOCUMENT
1182             Intent.FLAG_ACTIVITY_NEW_DOCUMENT}. This gives the activity writer ultimate
1183             control over how their activity is used. Note that applications prior to api
1184             21 will default to documentLaunchMode="none" so only activities that explicitly
1185             opt out with <code>"never"</code> may do so. -->
1186        <enum name="never" value="3" />
1187    </attr>
1188
1189    <!-- The maximum number of entries of tasks rooted at this activity in the recent task list.
1190         When this number of entries is reached the least recently used instance of this activity
1191         will be removed from recents. The value will be clamped between 1 and 100 inclusive.
1192         The default value for this if it is not specified is 15. -->
1193    <attr name="maxRecents" format="integer" />
1194
1195    <!-- Tasks launched by activities with this attribute will remain in the recent tasks
1196         list until the last activity in the task is completed.  When that happens the task
1197         will be automatically removed from the recent tasks list.  This overrides the caller's
1198         use of {@link android.content.Intent#FLAG_ACTIVITY_RETAIN_IN_RECENTS
1199         Intent.FLAG_ACTIVITY_RETAIN_IN_RECENTS} -->
1200    <attr name="autoRemoveFromRecents" format="boolean" />
1201
1202    <!-- Tasks whose root has this attribute set to true will replace baseIntent with that of the
1203         next activity in the task. If the next activity also has this attribute set to true then
1204         it will yield the baseIntent to any activity that it launches in the same task. This
1205         continues until an activity is encountered which has this attribute set to false. False
1206         is the default. This attribute set to true also permits activity's use of the
1207         TaskDescription to change labels, colors and icons in the recent task list. -->
1208    <attr name="relinquishTaskIdentity" format="boolean" />
1209
1210    <!-- Indicate that it is okay for this activity be resumed while the previous
1211         activity is in the process of pausing, without waiting for the previous pause
1212         to complete.  Use this with caution: your activity can not acquire any exclusive
1213         resources (such as opening the camera or recording audio) when it launches, or it
1214         may conflict with the previous activity and fail.
1215
1216         <p>The default value of this attribute is <code>false</code>. -->
1217    <attr name="resumeWhilePausing" format="boolean" />
1218
1219    <!-- Indicates that it is okay for this activity to be resized to any dimension. Intended for a
1220         multi-window device where there can be multiple activities of various sizes on the screen
1221         at the same time.
1222
1223         <p>The default value is <code>false</code> for applications with
1224         <code>targetSdkVersion</code> lesser than {@link android.os.Build.VERSION_CODES#N} and
1225         <code>true</code> otherwise.
1226
1227         <p>NOTE: A task's root activity value is applied to all additional activities launched in
1228         the task. That is if the root activity of a task is resizeable then the system will treat
1229         all other activities in the task as resizeable and will not if the root activity isn't
1230         resizeable.
1231
1232         <p>NOTE: The value of {@link android.R.attr#screenOrientation} is ignored for
1233         resizeable activities when in multi-window mode. -->
1234    <attr name="resizeableActivity" format="boolean" />
1235
1236    <!-- Indicates that the activity specifically supports the picture-in-picture form of
1237         multi-window. If true, this activity will support entering picture-in-picture, but will
1238         only support split-screen and other forms of multi-window if
1239         {@link android.R.attr#resizeableActivity} is also set to true.
1240
1241         Note that your activity may still be resized even if this attribute is true and
1242         {@link android.R.attr#resizeableActivity} is false.
1243
1244         <p>The default value is <code>false</code>.  -->
1245    <attr name="supportsPictureInPicture" format="boolean" />
1246
1247    <!-- This value indicates the maximum aspect ratio the activity supports. If the app runs on a
1248         device with a wider aspect ratio, the system automatically letterboxes the app, leaving
1249         portions of the screen unused so the app can run at its specified maximum aspect ratio.
1250         <p>
1251         Maximum aspect ratio, expressed as (longer dimension / shorter dimension) in decimal
1252         form. For example, if the maximum aspect ratio is 7:3, set value to 2.33.
1253         <p>
1254         Value needs to be greater or equal to 1.0, otherwise it is ignored.
1255         <p>
1256         NOTE: This attribute is ignored if the activity has
1257         {@link android.R.attr#resizeableActivity} set to true, since that means your activity
1258         supports any size. -->
1259    <attr name="maxAspectRatio" format="float" />
1260
1261    <!-- This value indicates how tasks rooted at this activity will behave in lockTask mode.
1262         While in lockTask mode the system will not launch non-permitted tasks until
1263         lockTask mode is disabled.
1264         <p>While in lockTask mode with multiple permitted tasks running, each launched task is
1265         permitted to finish, transitioning to the previous locked task, until there is only one
1266         task remaining. At that point the last task running is not permitted to finish, unless it
1267         uses the value always. -->
1268    <attr name="lockTaskMode">
1269        <!-- This is the default value. Tasks will not launch into lockTask mode but can be
1270             placed there by calling {@link android.app.Activity#startLockTask}. If a task with
1271             this mode has been whitelisted using {@link
1272             android.app.admin.DevicePolicyManager#setLockTaskPackages} then calling
1273             {@link android.app.Activity#startLockTask} will enter lockTask mode immediately,
1274             otherwise the user will be presented with a dialog to approve entering pinned mode.
1275             <p>If the system is already in lockTask mode when a new task rooted at this activity
1276             is launched that task will or will not start depending on whether the package of this
1277             activity has been whitelisted.
1278             <p>Tasks rooted at this activity can only exit lockTask mode using
1279             {@link android.app.Activity#stopLockTask}. -->
1280        <enum name="normal" value="0"/>
1281        <!-- Tasks will not launch into lockTask mode and cannot be placed there using
1282             {@link android.app.Activity#startLockTask} or be pinned from the Overview screen.
1283             If the system is already in lockTask mode when a new task rooted at this activity is
1284             launched that task will not be started.
1285             <p>Note: This mode is only available to system and privileged applications.
1286             Non-privileged apps with this value will be treated as normal.
1287             -->
1288        <enum name="never" value="1"/>
1289        <!-- Tasks rooted at this activity will always launch into lockTask mode. If the system is
1290             already in lockTask mode when this task is launched then the new task will be launched
1291             on top of the current task. Tasks launched in this mode are capable of exiting
1292             lockTask mode using {@link android.app.Activity#finish()}.
1293             <p>Note: This mode is only available to system and privileged applications.
1294             Non-privileged apps with this value will be treated as normal.
1295             -->
1296        <enum name="always" value="2"/>
1297        <!-- If the DevicePolicyManager (DPM) authorizes this package ({@link
1298             android.app.admin.DevicePolicyManager#setLockTaskPackages}) then this mode is
1299             identical to always, except that the activity needs to call
1300             {@link android.app.Activity#stopLockTask} before being able to finish if it is the last
1301             locked task.
1302             If the DPM does not authorize this package then this mode is identical to normal. -->
1303        <enum name="if_whitelisted" value="3"/>
1304    </attr>
1305    <!-- When set installer will extract native libraries. If set to false
1306         libraries in the apk must be stored and page-aligned.  -->
1307    <attr name="extractNativeLibs" format="boolean"/>
1308
1309    <!-- Specify whether an activity intent filter will need to be verified thru its set
1310         of data URIs. This will only be used when the Intent's action is set to
1311         {@link android.content.Intent#ACTION_VIEW Intent.ACTION_VIEW} and the Intent's category is
1312         set to {@link android.content.Intent#CATEGORY_BROWSABLE Intent.CATEGORY_BROWSABLE} and the
1313         intern filter data scheme is set to "http" or "https". When set to true, the intent filter
1314         will need to use its data tag for getting the URIs to verify with.
1315
1316         For each URI, an HTTPS network request will be done to <code>/.well-known/statements.json</code>
1317         host to verify that the web site is okay with the app intercepting the URI.
1318         -->
1319    <attr name="autoVerify" format="boolean" />
1320
1321    <!-- Specify whether a component should be visible to instant apps.
1322         -->
1323    <attr name="visibleToInstantApps" format="boolean" />
1324
1325    <!-- An XML resource with the application's Network Security Config. -->
1326    <attr name="networkSecurityConfig" format="reference" />
1327
1328    <!-- When an application is partitioned into splits, this is the name of the
1329         split that contains the defined component. -->
1330    <attr name="splitName" format="string" />
1331
1332    <!-- Specifies the target sandbox this app wants to use. Higher sanbox versions
1333         will have increasing levels of security.
1334
1335         <p>The default value of this attribute is <code>1</code>. -->
1336    <attr name="targetSandboxVersion" format="integer" />
1337
1338    <!-- The <code>manifest</code> tag is the root of an
1339         <code>AndroidManifest.xml</code> file,
1340         describing the contents of an Android package (.apk) file.  One
1341         attribute must always be supplied: <code>package</code> gives a
1342         unique name for the package, using a Java-style naming convention
1343         to avoid name collisions.  For example, applications published
1344         by Google could have names of the form
1345         <code>com.google.app.<em>appname</em></code>
1346
1347         <p>Inside of the manifest tag, may appear the following tags
1348         in any order: {@link #AndroidManifestPermission permission},
1349         {@link #AndroidManifestPermissionGroup permission-group},
1350         {@link #AndroidManifestPermissionTree permission-tree},
1351         {@link #AndroidManifestUsesSdk uses-sdk},
1352         {@link #AndroidManifestUsesPermission uses-permission},
1353         {@link #AndroidManifestUsesConfiguration uses-configuration},
1354         {@link #AndroidManifestApplication application},
1355         {@link #AndroidManifestInstrumentation instrumentation},
1356         {@link #AndroidManifestUsesFeature uses-feature}.  -->
1357    <declare-styleable name="AndroidManifest">
1358        <attr name="versionCode" />
1359        <attr name="versionName" />
1360        <attr name="revisionCode" />
1361        <attr name="sharedUserId" />
1362        <attr name="sharedUserLabel" />
1363        <attr name="installLocation" />
1364        <attr name="isolatedSplits" />
1365        <attr name="isFeatureSplit" />
1366        <attr name="targetSandboxVersion" />
1367    </declare-styleable>
1368
1369    <!-- The <code>application</code> tag describes application-level components
1370         contained in the package, as well as general application
1371         attributes.  Many of the attributes you can supply here (such
1372         as theme, label, icon, permission, process, taskAffinity,
1373         and allowTaskReparenting) serve
1374         as default values for the corresponding attributes of components
1375         declared inside of the application.
1376
1377         <p>Inside of this element you specify what the application contains,
1378         using the elements {@link #AndroidManifestProvider provider},
1379         {@link #AndroidManifestService service},
1380         {@link #AndroidManifestReceiver receiver},
1381         {@link #AndroidManifestActivity activity},
1382         {@link #AndroidManifestActivityAlias activity-alias}, and
1383         {@link #AndroidManifestUsesLibrary uses-library}.  The application tag
1384         appears as a child of the root {@link #AndroidManifest manifest} tag in
1385         an application's manifest file. -->
1386    <declare-styleable name="AndroidManifestApplication" parent="AndroidManifest">
1387        <!-- The (optional) fully-qualified name for a subclass of
1388             {@link android.app.Application} that the system instantiates before
1389             any other class when an app's process starts. Most applications
1390             don't need this attribute. If it's not specified, the system
1391             instantiates the base Application class instead.-->
1392        <attr name="name" />
1393        <attr name="theme" />
1394        <attr name="label" />
1395        <attr name="icon" />
1396        <attr name="roundIcon" />
1397        <attr name="banner" />
1398        <attr name="logo" />
1399        <attr name="description" />
1400        <attr name="permission" />
1401        <attr name="process" />
1402        <attr name="taskAffinity" />
1403        <attr name="allowTaskReparenting" />
1404        <!-- Indicate whether this application contains code.  If set to false,
1405             there is no code associated with it and thus the system will not
1406             try to load its code when launching components.  The default is true
1407             for normal behavior. -->
1408        <attr name="hasCode" format="boolean" />
1409        <attr name="persistent" />
1410        <attr name="persistentWhenFeatureAvailable" />
1411        <attr name="requiredForAllUsers" />
1412        <!-- Specify whether the components in this application are enabled or not (that is, can be
1413             instantiated by the system).
1414             If "false", it overrides any component specific values (a value of "true" will not
1415             override the component specific values). -->
1416        <attr name="enabled" />
1417        <attr name="debuggable" />
1418        <attr name="vmSafeMode" />
1419        <attr name="hardwareAccelerated" />
1420        <!-- Name of activity to be launched for managing the application's space on the device. -->
1421        <attr name="manageSpaceActivity" />
1422        <attr name="allowClearUserData" />
1423        <attr name="testOnly" />
1424        <attr name="backupAgent" />
1425        <attr name="allowBackup" />
1426        <attr name="fullBackupOnly" />
1427        <attr name="fullBackupContent" />
1428        <attr name="killAfterRestore" />
1429        <attr name="restoreNeedsApplication" />
1430        <attr name="restoreAnyVersion" />
1431        <attr name="backupInForeground" />
1432        <!-- Request that your application's processes be created with
1433             a large Dalvik heap.  This applies to <em>all</em> processes
1434             created for the application.  It only applies to the first
1435             application loaded into a process; if using a sharedUserId
1436             to allow multiple applications to use a process, they all must
1437             use this option consistently or will get unpredictable results. -->
1438        <attr name="largeHeap" format="boolean" />
1439        <!-- Declare that this application can't participate in the normal
1440             state save/restore mechanism.  Since it is not able to save and
1441             restore its state on demand,
1442             it can not participate in the normal activity lifecycle.  It will
1443             not be killed while in the background; the user must explicitly
1444             quit it.  Only one such app can be running at a time; if the user
1445             tries to launch a second such app, they will be prompted
1446             to quit the first before doing so.  While the
1447             application is running, the user will be informed of this.
1448             @hide -->
1449        <attr name="cantSaveState" format="boolean" />
1450        <attr name="uiOptions" />
1451        <!-- Declare that your application will be able to deal with RTL (right to left) layouts.
1452             The default value is false. -->
1453        <attr name="supportsRtl" format="boolean" />
1454        <!-- Declare that this application requires access to restricted accounts of a certain
1455             type. The default value is null and restricted accounts won\'t be visible to this
1456             application. The type should correspond to the account authenticator type, such as
1457             "com.google". -->
1458        <attr name="restrictedAccountType" format="string"/>
1459        <!-- Declare that this application requires an account of a certain
1460             type. The default value is null and indicates that the application can work without
1461             any accounts. The type should correspond to the account authenticator type, such as
1462             "com.google". -->
1463        <attr name="requiredAccountType" format="string"/>
1464        <!-- @deprecated replaced by setting appCategory attribute to "game" -->
1465        <attr name="isGame" />
1466        <!-- Declare that this application may use cleartext traffic, such as HTTP rather than
1467             HTTPS; WebSockets rather than WebSockets Secure; XMPP, IMAP, STMP without STARTTLS or
1468             TLS). Defaults to true. If set to false {@code false}, the application declares that it
1469             does not intend to use cleartext network traffic, in which case platform components
1470             (e.g. HTTP stacks, {@code DownloadManager}, {@code MediaPlayer}) will refuse
1471             applications's requests to use cleartext traffic. Third-party libraries are encouraged
1472             to honor this flag as well. -->
1473        <attr name="usesCleartextTraffic" />
1474        <attr name="multiArch" />
1475        <attr name="extractNativeLibs" />
1476        <attr name="defaultToDeviceProtectedStorage" format="boolean" />
1477        <attr name="directBootAware" />
1478        <attr name="resizeableActivity" />
1479        <attr name="maxAspectRatio" />
1480        <attr name="networkSecurityConfig" />
1481        <!-- Declare the category of this app. Categories are used to cluster multiple apps
1482             together into meaningful groups, such as when summarizing battery, network, or
1483             disk usage. Apps should only define this value when they fit well into one of
1484             the specific categories. -->
1485        <attr name="appCategory">
1486            <!-- Apps which are primarily games. -->
1487            <enum name="game" value="0" />
1488            <!-- Apps which primarily work with audio or music, such as music players. -->
1489            <enum name="audio" value="1" />
1490            <!-- Apps which primarily work with video or movies, such as streaming video apps. -->
1491            <enum name="video" value="2" />
1492            <!-- Apps which primarily work with images or photos, such as camera or gallery apps. -->
1493            <enum name="image" value="3" />
1494            <!-- Apps which are primarily social apps, such as messaging, communication, email, or social network apps. -->
1495            <enum name="social" value="4" />
1496            <!-- Apps which are primarily news apps, such as newspapers, magazines, or sports apps. -->
1497            <enum name="news" value="5" />
1498            <!-- Apps which are primarily maps apps, such as navigation apps. -->
1499            <enum name="maps" value="6" />
1500            <!-- Apps which are primarily productivity apps, such as cloud storage or workplace apps. -->
1501            <enum name="productivity" value="7" />
1502        </attr>
1503
1504        <!-- Declares the kind of classloader this application's classes must be loaded with -->
1505        <attr name="classLoader" />
1506
1507    </declare-styleable>
1508    <!-- The <code>permission</code> tag declares a security permission that can be
1509         used to control access from other packages to specific components or
1510         features in your package (or other packages).  See the
1511         <a href="{@docRoot}guide/topics/security/security.html">Security and Permissions</a>
1512         document for more information on permissions.
1513
1514         <p>This appears as a child tag of the root
1515         {@link #AndroidManifest manifest} tag. -->
1516    <declare-styleable name="AndroidManifestPermission" parent="AndroidManifest">
1517        <!-- Required public name of the permission, which other components and
1518        packages will use when referring to this permission.  This is a string using
1519        Java-style scoping to ensure it is unique.  The prefix will often
1520        be the same as our overall package name, for example
1521        "com.mycompany.android.myapp.SomePermission". -->
1522        <attr name="name" />
1523        <attr name="label" />
1524        <attr name="icon" />
1525        <attr name="roundIcon" />
1526        <attr name="banner" />
1527        <attr name="logo" />
1528        <attr name="permissionGroup" />
1529        <attr name="description" />
1530        <attr name="protectionLevel" />
1531        <attr name="permissionFlags" />
1532    </declare-styleable>
1533
1534    <!-- The <code>permission-group</code> tag declares a logical grouping of
1535         related permissions.
1536
1537         <p>Note that this tag does not declare a permission itself, only
1538         a namespace in which further permissions can be placed.  See
1539         the {@link #AndroidManifestPermission &lt;permission&gt;} tag for
1540         more information.
1541
1542         <p>This appears as a child tag of the root
1543         {@link #AndroidManifest manifest} tag. -->
1544    <declare-styleable name="AndroidManifestPermissionGroup" parent="AndroidManifest">
1545        <!-- Required public name of the permission group, permissions will use
1546        to specify the group they are in.  This is a string using
1547        Java-style scoping to ensure it is unique.  The prefix will often
1548        be the same as our overall package name, for example
1549        "com.mycompany.android.myapp.SomePermission". -->
1550        <attr name="name" />
1551        <attr name="label" />
1552        <attr name="icon" />
1553        <attr name="roundIcon" />
1554        <attr name="banner" />
1555        <attr name="logo" />
1556        <attr name="description" />
1557        <attr name="permissionGroupFlags" />
1558        <attr name="priority" />
1559    </declare-styleable>
1560
1561    <!-- The <code>permission-tree</code> tag declares the base of a tree of
1562         permission values: it declares that this package has ownership of
1563         the given permission name, as well as all names underneath it
1564         (separated by '.').  This allows you to use the
1565         {@link android.content.pm.PackageManager#addPermission
1566         PackageManager.addPermission()} method to dynamically add new
1567         permissions under this tree.
1568
1569         <p>Note that this tag does not declare a permission itself, only
1570         a namespace in which further permissions can be placed.  See
1571         the {@link #AndroidManifestPermission &lt;permission&gt;} tag for
1572         more information.
1573
1574         <p>This appears as a child tag of the root
1575         {@link #AndroidManifest manifest} tag. -->
1576    <declare-styleable name="AndroidManifestPermissionTree" parent="AndroidManifest">
1577        <!-- Required public name of the permission tree, which is the base name
1578        of all permissions under it.  This is a string using
1579        Java-style scoping to ensure it is unique.  The prefix will often
1580        be the same as our overall package name, for example
1581        "com.mycompany.android.myapp.SomePermission".  A permission tree name
1582        must have more than two segments in its path; that is,
1583        "com.me.foo" is okay, but not "com.me" or "com". -->
1584        <attr name="name" />
1585        <attr name="label" />
1586        <attr name="icon" />
1587        <attr name="roundIcon" />
1588        <attr name="banner" />
1589        <attr name="logo" />
1590    </declare-styleable>
1591
1592    <!-- The <code>uses-permission</code> tag requests a
1593         {@link #AndroidManifestPermission &lt;permission&gt;} that the containing
1594         package must be granted in order for it to operate correctly. For runtime
1595         permissions, i.e. ones with <code>dangerous</code> protection level, on a
1596         platform that supports runtime permissions, the permission will not be
1597         granted until the app explicitly requests it at runtime and the user approves
1598         the grant. You cannot request at runtime permissions that are not declared
1599         as used in the manifest. See the
1600         <a href="{@docRoot}guide/topics/security/security.html">Security and Permissions</a>
1601         document for more information on permissions.  Also available is a
1602         {@link android.Manifest.permission list of permissions} included
1603         with the base platform.
1604
1605         <p>This appears as a child tag of the root
1606         {@link #AndroidManifest manifest} tag. -->
1607    <declare-styleable name="AndroidManifestUsesPermission" parent="AndroidManifest">
1608        <!-- Required name of the permission you use, as published with the
1609        corresponding name attribute of a
1610        {@link android.R.styleable#AndroidManifestPermission &lt;permission&gt;}
1611        tag; often this is one of the {@link android.Manifest.permission standard
1612        system permissions}. -->
1613        <attr name="name" />
1614        <!-- Optional: specify the maximum version of the Android OS for which the
1615             application wishes to request the permission.  When running on a version
1616             of Android higher than the number given here, the permission will not
1617             be requested.  -->
1618        <attr name="maxSdkVersion" format="integer" />
1619        <!-- Optional: the system must support this feature for the permission to be
1620        requested.  If it doesn't support the feature, it will be as if the manifest didn't
1621        request it at all. -->
1622        <attr name="requiredFeature" format="string" />
1623        <!-- Optional: the system must NOT support this feature for the permission to be
1624        requested.  If it does support the feature, it will be as if the manifest didn't
1625        request it at all. -->
1626        <attr name="requiredNotFeature" format="string" />
1627    </declare-styleable>
1628
1629    <!-- The <code>uses-configuration</code> tag specifies
1630         a specific hardware configuration value used by the application.
1631         For example an application might specify that it requires
1632         a physical keyboard or a particular navigation method like
1633         trackball. Multiple such attribute values can be specified by the
1634         application.
1635
1636         <p>This appears as a child tag of the root
1637         {@link #AndroidManifest manifest} tag.
1638
1639         @deprecated Use <code>feature-group</code> instead.-->
1640    <declare-styleable name="AndroidManifestUsesConfiguration" parent="AndroidManifest">
1641        <!-- The type of touch screen used by an application. -->
1642        <attr name="reqTouchScreen" />
1643        <attr name="reqKeyboardType" />
1644        <attr name="reqHardKeyboard" />
1645        <attr name="reqNavigation" />
1646        <attr name="reqFiveWayNav" />
1647    </declare-styleable>
1648
1649    <!-- The <code>uses-feature</code> tag specifies a specific device
1650         hardware or software feature used by the application. For
1651         example an application might specify that it requires
1652         a camera. Multiple attribute values can be specified by the
1653         application.
1654
1655         <p>This appears as a child tag of the root
1656         {@link #AndroidManifest manifest} tag. -->
1657    <declare-styleable name="AndroidManifestUsesFeature" parent="AndroidManifest">
1658        <!-- The name of the feature that is being used. -->
1659        <attr name="name" />
1660        <!-- The version of the feature that is being used. -->
1661        <attr name="version" format="integer" />
1662        <!-- The GLES driver version number needed by an application.
1663             The higher 16 bits represent the major number and the lower 16 bits
1664             represent the minor number. For example for GL 1.2 referring to
1665             0x00000102, the actual value should be set as 0x00010002. -->
1666        <attr name="glEsVersion" format="integer" />
1667        <!--  Specify whether this feature is required for the application.
1668              The default is true, meaning the application requires the
1669              feature, and does not want to be installed on devices that
1670              don't support it.  If you set this to false, then this will
1671              not impose a restriction on where the application can be
1672              installed. -->
1673        <attr name="required" format="boolean" />
1674    </declare-styleable>
1675
1676    <!-- The <code>feature-group</code> tag specifies
1677         a set of one or more <code>uses-feature</code> elements that
1678         the application can utilize. An application uses multiple
1679         <code>feature-group</code> sets to indicate that it can support
1680         different combinations of features.
1681
1682         <p>This appears as a child tag of the root
1683         {@link #AndroidManifest manifest} tag. -->
1684    <declare-styleable name="AndroidManifestFeatureGroup">
1685        <!-- The human-readable name of the feature group. -->
1686        <attr name="label" />
1687    </declare-styleable>
1688
1689    <!-- The <code>uses-sdk</code> tag describes the SDK features that the
1690         containing package must be running on to operate correctly.
1691
1692         <p>This appears as a child tag of the root
1693         {@link #AndroidManifest manifest} tag. -->
1694    <declare-styleable name="AndroidManifestUsesSdk" parent="AndroidManifest">
1695        <!-- This is the minimum SDK version number that the application
1696             requires.  This number is an abstract integer, from the list
1697             in {@link android.os.Build.VERSION_CODES}  If
1698             not supplied, the application will work on any SDK.  This
1699             may also be string (such as "Donut") if the application was built
1700             against a development branch, in which case it will only work against
1701             the development builds. -->
1702        <attr name="minSdkVersion" format="integer|string" />
1703        <!-- This is the SDK version number that the application is targeting.
1704             It is able to run on older versions (down to minSdkVersion), but
1705             was explicitly tested to work with the version specified here.
1706             Specifying this version allows the platform to disable compatibility
1707             code that are not required or enable newer features that are not
1708             available to older applications.  This may also be a string
1709             (such as "Donut") if this is built against a development
1710             branch, in which case minSdkVersion is also forced to be that
1711             string. -->
1712        <attr name="targetSdkVersion" format="integer|string" />
1713        <!-- This is the maximum SDK version number that an application works
1714             on.  You can use this to ensure your application is filtered out
1715             of later versions of the platform when you know you have
1716             incompatibility with them. -->
1717        <attr name="maxSdkVersion" />
1718    </declare-styleable>
1719
1720    <!-- The <code>library</code> tag declares that this apk is providing itself
1721         as a shared library for other applications to use.  It can only be used
1722         with apks that are built in to the system image.  Other apks can link to
1723         it with the {@link #AndroidManifestUsesLibrary uses-library} tag.
1724
1725         <p>This appears as a child tag of the
1726         {@link #AndroidManifestApplication application} tag. -->
1727    <declare-styleable name="AndroidManifestLibrary" parent="AndroidManifest">
1728        <!-- Required public name of the library, which other components and
1729        packages will use when referring to this library.  This is a string using
1730        Java-style scoping to ensure it is unique.  The name should typically
1731        be the same as the apk's package name. -->
1732        <attr name="name" />
1733    </declare-styleable>
1734
1735
1736    <!-- The <code>static-library</code> tag declares that this apk is providing itself
1737       as a static shared library for other applications to use. Any app can declare such
1738       a library and there can be only one static shared library per package. These libraries
1739       are updatable, multiple versions can be installed at the same time, and an app links
1740       against a specific version simulating static linking while allowing code sharing.
1741       Other apks can link to it with the {@link #AndroidManifestUsesLibrary uses-static-library}
1742       tag.
1743
1744     <p>This appears as a child tag of the
1745     {@link #AndroidManifestApplication application} tag. -->
1746    <declare-styleable name="AndroidManifestStaticLibrary" parent="AndroidManifestApplication">
1747        <!-- Required public name of the library, which other components and
1748        packages will use when referring to this library.  This is a string using
1749        Java-style scoping to ensure it is unique.  The name should typically
1750        be the same as the apk's package name. -->
1751        <attr name="name" />
1752        <!-- Required specific library version. -->
1753        <attr name="version" />
1754    </declare-styleable>
1755
1756    <!-- The <code>uses-libraries</code> specifies a shared library that this
1757         package requires to be linked against.  Specifying this flag tells the
1758         system to include this library's code in your class loader.
1759
1760         <p>This appears as a child tag of the
1761         {@link #AndroidManifestApplication application} tag. -->
1762    <declare-styleable name="AndroidManifestUsesLibrary" parent="AndroidManifestApplication">
1763        <!-- Required name of the library you use. -->
1764        <attr name="name" />
1765        <!--  Specify whether this library is required for the application.
1766              The default is true, meaning the application requires the
1767              library, and does not want to be installed on devices that
1768              don't support it.  If you set this to false, then this will
1769              allow the application to be installed even if the library
1770              doesn't exist, and you will need to check for its presence
1771              dynamically at runtime. -->
1772        <attr name="required" />
1773    </declare-styleable>
1774
1775    <!-- The <code>uses-static-library</code> specifies a shared <strong>static</strong>
1776         library that this package requires to be statically linked against. Specifying
1777         this tag tells the system to include this library's code in your class loader.
1778         Depending on a static shared library is equivalent to statically linking with
1779         the library at build time while it offers apps to share code defined in such
1780         libraries. Hence, static libraries are strictly required.
1781
1782         <p>On devices running O MR1 or higher, if the library is singed with multiple
1783         signing certificates you must to specify the SHA-256 hashes of the additional
1784         certificates via adding
1785         {@link #AndroidManifestAdditionalCertificate additional-certificate} tags.
1786
1787         <p>This appears as a child tag of the
1788         {@link #AndroidManifestApplication application} tag. -->
1789    <declare-styleable name="AndroidManifestUsesStaticLibrary" parent="AndroidManifestApplication">
1790        <!-- Required name of the library you use. -->
1791        <attr name="name" />
1792        <!-- Specify which version of the shared library should be statically linked. -->
1793        <attr name="version" />
1794        <!-- The SHA-256 digest of the library signing certificate. -->
1795        <attr name="certDigest" format="string" />
1796    </declare-styleable>
1797
1798    <!-- The <code>additional-certificate</code> specifies the SHA-256 digest of a static
1799         shared library's additional signing certificate. You need to use this tag if the
1800         library is singed with more than one certificate.
1801
1802         <p>This appears as a child tag of the
1803         {@link #AndroidManifestUsesStaticLibrary uses-static-library} tag. -->
1804    <declare-styleable name="AndroidManifestAdditionalCertificate" parent="AndroidManifestUsesStaticLibrary">
1805        <!-- The SHA-256 digest of the library signing certificate. -->
1806        <attr name="certDigest" />
1807    </declare-styleable>
1808
1809    <!-- The <code>supports-screens</code> specifies the screen dimensions an
1810         application supports.  By default a modern application supports all
1811         screen sizes and must explicitly disable certain screen sizes here;
1812         older applications are assumed to only support the traditional normal
1813         (HVGA) screen size.  Note that screen size is a separate axis from
1814         density, and is determined as the available pixels to an application
1815         after density scaling has been applied.
1816
1817         <p>This appears as a child tag of the
1818         {@link #AndroidManifest manifest} tag. -->
1819    <declare-styleable name="AndroidManifestSupportsScreens" parent="AndroidManifest">
1820        <!-- Starting with {@link android.os.Build.VERSION_CODES#HONEYCOMB_MR2},
1821             this is the new way to specify the minimum screen size an application is
1822             compatible with.  This attribute provides the required minimum
1823             "smallest screen width" (as per the -swNNNdp resource configuration)
1824             that the application can run on.  For example, a typical phone
1825             screen is 320, a 7" tablet 600, and a 10" tablet 720.  If the
1826             smallest screen width of the device is below the value supplied here,
1827             then the application is considered incompatible with that device.
1828             If not supplied, then any old smallScreens, normalScreens, largeScreens,
1829             or xlargeScreens attributes will be used instead. -->
1830        <attr name="requiresSmallestWidthDp" format="integer" />
1831        <!-- Starting with {@link android.os.Build.VERSION_CODES#HONEYCOMB_MR2},
1832             this is the new way to specify the largest screens an application is
1833             compatible with.  This attribute provides the maximum
1834             "smallest screen width" (as per the -swNNNdp resource configuration)
1835             that the application is designed for.  If this value is smaller than
1836             the "smallest screen width" of the device it is running on, the user
1837             is offered to run it in a compatibility mode that emulates a
1838             smaller screen and zooms it to fit the screen. Currently the compatibility mode only
1839             emulates phone screens with a 320dp width, so compatibility mode is not applied if the
1840             value for compatibleWidthLimitDp is larger than 320. -->
1841        <attr name="compatibleWidthLimitDp" format="integer" />
1842        <!-- Starting with {@link android.os.Build.VERSION_CODES#HONEYCOMB_MR2},
1843             this is the new way to specify the screens an application is
1844             compatible with.  This attribute provides the maximum
1845             "smallest screen width" (as per the -swNNNdp resource configuration)
1846             that the application can work well on.  If this value is smaller than
1847             the "smallest screen width" of the device it is running on, the
1848             application will be forced in to screen compatibility mode with
1849             no way for the user to turn it off. Currently the compatibility mode only
1850             emulates phone screens with a 320dp width, so compatibility mode is not applied if the
1851             value for largestWidthLimitDp is larger than 320. -->
1852        <attr name="largestWidthLimitDp" format="integer" />
1853        <!-- Indicates whether the application supports smaller screen form-factors.
1854             A small screen is defined as one with a smaller aspect ratio than
1855             the traditional HVGA screen; that is, for a portrait screen, less
1856             tall than an HVGA screen.  In practice, this means a QVGA low
1857             density or VGA high density screen.  An application that does
1858             not support small screens <em>will not be available</em> for
1859             small screen devices, since there is little the platform can do
1860             to make such an application work on a smaller screen. -->
1861        <attr name="smallScreens" format="boolean" />
1862        <!-- Indicates whether an application supports the normal screen
1863             form-factors.  Traditionally this is an HVGA normal density
1864             screen, but WQVGA low density and WVGA high density are also
1865             considered to be normal.  This attribute is true by default,
1866             and applications currently should leave it that way. -->
1867        <attr name="normalScreens" format="boolean" />
1868        <!-- Indicates whether the application supports larger screen form-factors.
1869             A large screen is defined as a screen that is significantly larger
1870             than a normal phone screen, and thus may require some special care
1871             on the application's part to make good use of it.  An example would
1872             be a VGA <em>normal density</em> screen, though even larger screens
1873             are certainly possible.  An application that does not support
1874             large screens will be placed as a postage stamp on such a
1875             screen, so that it retains the dimensions it was originally
1876             designed for. -->
1877        <attr name="largeScreens" format="boolean" />
1878        <!-- Indicates whether the application supports extra large screen form-factors. -->
1879        <attr name="xlargeScreens" format="boolean" />
1880        <!-- Indicates whether the application can resize itself to newer
1881             screen sizes.  This is mostly used to distinguish between old
1882             applications that may not be compatible with newly introduced
1883             screen sizes and newer applications that should be; it will be
1884             set for you automatically based on whether you are targeting
1885             a newer platform that supports more screens. -->
1886        <attr name="resizeable" format="boolean" />
1887        <!-- Indicates whether the application can accommodate any screen
1888             density.  Older applications are assumed to not be able to,
1889             new ones able to.  You can explicitly supply your abilities
1890             here. -->
1891        <attr name="anyDensity" format="boolean" />
1892    </declare-styleable>
1893
1894    <!-- Private tag to declare system protected broadcast actions.
1895
1896         <p>This appears as a child tag of the root
1897         {@link #AndroidManifest manifest} tag. -->
1898    <declare-styleable name="AndroidManifestProtectedBroadcast" parent="AndroidManifest">
1899        <attr name="name" />
1900    </declare-styleable>
1901
1902    <!-- Private tag to declare the original package name that this package is
1903         based on.  Only used for packages installed in the system image.  If
1904         given, and different than the actual package name, and the given
1905         original package was previously installed on the device but the new
1906         one was not, then the data for the old one will be renamed to be
1907         for the new package.
1908
1909         <p>This appears as a child tag of the root
1910         {@link #AndroidManifest manifest} tag. -->
1911    <declare-styleable name="AndroidManifestOriginalPackage" parent="AndroidManifest">
1912        <attr name="name" />
1913    </declare-styleable>
1914
1915    <!-- The <code>provider</code> tag declares a
1916         {@link android.content.ContentProvider} class that is available
1917         as part of the package's application components, supplying structured
1918         access to data managed by the application.
1919
1920         <p>This appears as a child tag of the
1921         {@link #AndroidManifestApplication application} tag. -->
1922    <declare-styleable name="AndroidManifestProvider" parent="AndroidManifestApplication">
1923        <!-- Required name of the class implementing the provider, deriving from
1924            {@link android.content.ContentProvider}.  This is a fully
1925            qualified class name (for example, com.mycompany.myapp.MyProvider); as a
1926            short-hand if the first character of the class
1927            is a period then it is appended to your package name. -->
1928        <attr name="name" />
1929        <attr name="label" />
1930        <attr name="description" />
1931        <attr name="icon" />
1932        <attr name="roundIcon" />
1933        <attr name="banner" />
1934        <attr name="logo" />
1935        <attr name="process" />
1936        <attr name="authorities" />
1937        <attr name="syncable" />
1938        <attr name="readPermission" />
1939        <attr name="writePermission" />
1940        <attr name="grantUriPermissions" />
1941        <attr name="permission" />
1942        <attr name="multiprocess" />
1943        <attr name="initOrder" />
1944        <!-- Specify whether this provider is enabled or not (that is, can be instantiated by the system).
1945             It can also be specified for an application as a whole, in which case a value of "false"
1946             will override any component specific values (a value of "true" will not override the
1947             component specific values). -->
1948        <attr name="enabled" />
1949        <attr name="exported" />
1950        <attr name="singleUser" />
1951        <attr name="directBootAware" />
1952        <attr name="visibleToInstantApps" />
1953        <!-- The code for this component is located in the given split. -->
1954        <attr name="splitName" />
1955    </declare-styleable>
1956
1957    <!-- Attributes that can be supplied in an AndroidManifest.xml
1958         <code>grant-uri-permission</code> tag, a child of the
1959         {@link #AndroidManifestProvider provider} tag, describing a specific
1960         URI path that can be granted as a permission.  This tag can be
1961         specified multiple time to supply multiple paths. -->
1962    <declare-styleable name="AndroidManifestGrantUriPermission"  parent="AndroidManifestProvider">
1963        <!-- Specify a URI path that must exactly match, as per
1964             {@link android.os.PatternMatcher} with
1965             {@link android.os.PatternMatcher#PATTERN_LITERAL}. -->
1966        <attr name="path" format="string" />
1967        <!-- Specify a URI path that must be a prefix to match, as per
1968             {@link android.os.PatternMatcher} with
1969             {@link android.os.PatternMatcher#PATTERN_PREFIX}. -->
1970        <attr name="pathPrefix" format="string" />
1971        <!-- Specify a URI path that matches a simple pattern, as per
1972             {@link android.os.PatternMatcher} with
1973             {@link android.os.PatternMatcher#PATTERN_SIMPLE_GLOB}.
1974             Note that because '\' is used as an escape character when
1975             reading the string from XML (before it is parsed as a pattern),
1976             you will need to double-escape: for example a literal "*" would
1977             be written as "\\*" and a literal "\" would be written as
1978             "\\\\".  This is basically the same as what you would need to
1979             write if constructing the string in Java code. -->
1980        <attr name="pathPattern" format="string" />
1981    </declare-styleable>
1982
1983    <!-- Attributes that can be supplied in an AndroidManifest.xml
1984         <code>path-permission</code> tag, a child of the
1985         {@link #AndroidManifestProvider provider} tag, describing a permission
1986         that allows access to a specific path in the provider.  This tag can be
1987         specified multiple time to supply multiple paths. -->
1988    <declare-styleable name="AndroidManifestPathPermission"  parent="AndroidManifestProvider">
1989        <attr name="path" />
1990        <attr name="pathPrefix" />
1991        <attr name="pathPattern" />
1992        <attr name="pathAdvancedPattern" />
1993        <attr name="permission" />
1994        <attr name="readPermission" />
1995        <attr name="writePermission" />
1996    </declare-styleable>
1997
1998    <!-- The <code>service</code> tag declares a
1999         {@link android.app.Service} class that is available
2000         as part of the package's application components, implementing
2001         long-running background operations or a rich communication API
2002         that can be called by other packages.
2003
2004         <p>Zero or more {@link #AndroidManifestIntentFilter intent-filter}
2005         tags can be included inside of a service, to specify the Intents
2006         that can connect with it.  If none are specified, the service can
2007         only be accessed by direct specification of its class name.
2008         The service tag appears as a child tag of the
2009         {@link #AndroidManifestApplication application} tag. -->
2010    <declare-styleable name="AndroidManifestService" parent="AndroidManifestApplication">
2011        <!-- Required name of the class implementing the service, deriving from
2012            {@link android.app.Service}.  This is a fully
2013            qualified class name (for example, com.mycompany.myapp.MyService); as a
2014            short-hand if the first character of the class
2015            is a period then it is appended to your package name. -->
2016        <attr name="name" />
2017        <attr name="label" />
2018        <attr name="description" />
2019        <attr name="icon" />
2020        <attr name="roundIcon" />
2021        <attr name="banner" />
2022        <attr name="logo" />
2023        <attr name="permission" />
2024        <attr name="process" />
2025        <!-- Specify whether the service is enabled or not (that is, can be instantiated by the system).
2026             It can also be specified for an application as a whole, in which case a value of "false"
2027             will override any component specific values (a value of "true" will not override the
2028             component specific values). -->
2029        <attr name="enabled" />
2030        <attr name="exported" />
2031        <!-- If set to true, this service with be automatically stopped
2032             when the user remove a task rooted in an activity owned by
2033             the application.  The default is false. -->
2034        <attr name="stopWithTask" format="boolean" />
2035        <!-- If set to true, this service will run under a special process
2036             that is isolated from the rest of the system.  The only communication
2037             with it is through the Service API (binding and starting). -->
2038        <attr name="isolatedProcess" format="boolean" />
2039        <attr name="singleUser" />
2040        <attr name="directBootAware" />
2041        <!-- If the service is an {@link android.R.attr#isolatedProcess} service, this permits a
2042             client to bind to the service as if it were running it its own package.  The service
2043             must also be {@link android.R.attr#exported} if this flag is set. -->
2044        <attr name="externalService" format="boolean" />
2045        <attr name="visibleToInstantApps" />
2046        <!-- The code for this component is located in the given split. -->
2047        <attr name="splitName" />
2048    </declare-styleable>
2049
2050    <!-- The <code>receiver</code> tag declares an
2051         {@link android.content.BroadcastReceiver} class that is available
2052         as part of the package's application components, allowing the
2053         application to receive actions or data broadcast by other
2054         applications even if it is not currently running.
2055
2056         <p>Zero or more {@link #AndroidManifestIntentFilter intent-filter}
2057         tags can be included inside of a receiver, to specify the Intents
2058         it will receive.  If none are specified, the receiver will only
2059         be run when an Intent is broadcast that is directed at its specific
2060         class name.  The receiver tag appears as a child tag of the
2061         {@link #AndroidManifestApplication application} tag. -->
2062    <declare-styleable name="AndroidManifestReceiver" parent="AndroidManifestApplication">
2063        <!-- Required name of the class implementing the receiver, deriving from
2064            {@link android.content.BroadcastReceiver}.  This is a fully
2065            qualified class name (for example, com.mycompany.myapp.MyReceiver); as a
2066            short-hand if the first character of the class
2067            is a period then it is appended to your package name. -->
2068        <attr name="name" />
2069        <attr name="label" />
2070        <attr name="description" />
2071        <attr name="icon" />
2072        <attr name="roundIcon" />
2073        <attr name="banner" />
2074        <attr name="logo" />
2075        <attr name="permission" />
2076        <attr name="process" />
2077        <!-- Specify whether the receiver is enabled or not (that is, can be instantiated by the system).
2078             It can also be specified for an application as a whole, in which case a value of "false"
2079             will override any component specific values (a value of "true" will not override the
2080             component specific values). -->
2081        <attr name="enabled" />
2082        <attr name="exported" />
2083        <attr name="singleUser" />
2084        <attr name="directBootAware" />
2085    </declare-styleable>
2086
2087    <!-- The <code>activity</code> tag declares an
2088         {@link android.app.Activity} class that is available
2089         as part of the package's application components, implementing
2090         a part of the application's user interface.
2091
2092         <p>Zero or more {@link #AndroidManifestIntentFilter intent-filter}
2093         tags can be included inside of an activity, to specify the Intents
2094         that it can handle.  If none are specified, the activity can
2095         only be started through direct specification of its class name.
2096         The activity tag appears as a child tag of the
2097         {@link #AndroidManifestApplication application} tag. -->
2098    <declare-styleable name="AndroidManifestActivity" parent="AndroidManifestApplication">
2099        <!-- Required name of the class implementing the activity, deriving from
2100            {@link android.app.Activity}.  This is a fully
2101            qualified class name (for example, com.mycompany.myapp.MyActivity); as a
2102            short-hand if the first character of the class
2103            is a period then it is appended to your package name. -->
2104        <attr name="name" />
2105        <attr name="theme" />
2106        <attr name="label" />
2107        <attr name="description" />
2108        <attr name="icon" />
2109        <attr name="roundIcon" />
2110        <attr name="banner" />
2111        <attr name="logo" />
2112        <attr name="launchMode" />
2113        <attr name="screenOrientation" />
2114        <attr name="configChanges" />
2115        <attr name="recreateOnConfigChanges" />
2116        <attr name="permission" />
2117        <attr name="multiprocess" />
2118        <attr name="process" />
2119        <attr name="taskAffinity" />
2120        <attr name="allowTaskReparenting" />
2121        <attr name="finishOnTaskLaunch" />
2122        <attr name="finishOnCloseSystemDialogs" />
2123        <attr name="clearTaskOnLaunch" />
2124        <attr name="noHistory" />
2125        <attr name="alwaysRetainTaskState" />
2126        <attr name="stateNotNeeded" />
2127        <attr name="excludeFromRecents" />
2128        <!-- @deprecated use {@link android.R.attr#showForAllUsers} instead. -->
2129        <attr name="showOnLockScreen" />
2130        <!-- Specify whether the activity is enabled or not (that is, can be instantiated by the system).
2131             It can also be specified for an application as a whole, in which case a value of "false"
2132             will override any component specific values (a value of "true" will not override the
2133             component specific values). -->
2134        <attr name="enabled" />
2135        <attr name="exported" />
2136        <!-- Specify the default soft-input mode for the main window of
2137             this activity.  A value besides "unspecified" here overrides
2138             any value in the theme. -->
2139        <attr name="windowSoftInputMode" />
2140        <attr name="immersive" />
2141        <attr name="hardwareAccelerated" />
2142        <attr name="uiOptions" />
2143        <attr name="parentActivityName" />
2144        <attr name="singleUser" />
2145        <!-- @hide This broadcast receiver or activity will only receive broadcasts for the
2146             system user-->
2147        <attr name="systemUserOnly" format="boolean" />
2148        <attr name="persistableMode" />
2149        <attr name="allowEmbedded" />
2150        <attr name="documentLaunchMode" />
2151        <attr name="maxRecents" />
2152        <attr name="autoRemoveFromRecents" />
2153        <attr name="relinquishTaskIdentity" />
2154        <attr name="resumeWhilePausing" />
2155        <attr name="resizeableActivity" />
2156        <attr name="supportsPictureInPicture" />
2157        <attr name="maxAspectRatio" />
2158        <attr name="lockTaskMode" />
2159        <attr name="showForAllUsers" />
2160
2161        <attr name="showWhenLocked" />
2162        <attr name="turnScreenOn" />
2163
2164        <attr name="directBootAware" />
2165        <!-- @hide This activity is always focusable regardless of if it is in a task/stack whose
2166             activities are normally not focusable.
2167             For example, {@link android.R.attr#supportsPictureInPicture} activities are placed
2168             in a task/stack that isn't focusable. This flag allows them to be focusable.-->
2169        <attr name="alwaysFocusable" format="boolean" />
2170        <attr name="enableVrMode" />
2171        <attr name="rotationAnimation" />
2172        <attr name="visibleToInstantApps" />
2173        <!-- The code for this component is located in the given split. -->
2174        <attr name="splitName" />
2175        <!-- Specify the color mode the activity desires. The requested color mode may be ignored
2176             depending on the capabilities of the display the activity is displayed on. -->
2177        <attr name="colorMode">
2178            <!-- The default color mode (typically sRGB, low-dynamic range). -->
2179            <enum name="default" value="0" />
2180            <!-- Wide color gamut color mode. -->
2181            <enum name="wideColorGamut" value="1" />
2182            <!-- High dynamic range color mode. -->
2183            <enum name="hdr" value="2" />
2184        </attr>
2185    </declare-styleable>
2186
2187    <!-- The <code>activity-alias</code> tag declares a new
2188         name for an existing {@link #AndroidManifestActivity activity}
2189         tag.
2190
2191         <p>Zero or more {@link #AndroidManifestIntentFilter intent-filter}
2192         tags can be included inside of an activity-alias, to specify the Intents
2193         that it can handle.  If none are specified, the activity can
2194         only be started through direct specification of its class name.
2195         The activity-alias tag appears as a child tag of the
2196         {@link #AndroidManifestApplication application} tag. -->
2197    <declare-styleable name="AndroidManifestActivityAlias" parent="AndroidManifestApplication">
2198        <!-- Required name of the class implementing the activity, deriving from
2199            {@link android.app.Activity}.  This is a fully
2200            qualified class name (for example, com.mycompany.myapp.MyActivity); as a
2201            short-hand if the first character of the class
2202            is a period then it is appended to your package name. -->
2203        <attr name="name" />
2204        <!-- The name of the activity this alias should launch.  The activity
2205             must be in the same manifest as the alias, and have been defined
2206             in that manifest before the alias here.  This must use a Java-style
2207             naming convention to ensure the name is unique, for example
2208             "com.mycompany.MyName". -->
2209        <attr name="targetActivity" format="string" />
2210        <attr name="label" />
2211        <attr name="description" />
2212        <attr name="icon" />
2213        <attr name="roundIcon" />
2214        <attr name="banner" />
2215        <attr name="logo" />
2216        <attr name="permission" />
2217        <!-- Specify whether the activity-alias is enabled or not (that is, can be instantiated by the system).
2218             It can also be specified for an application as a whole, in which case a value of "false"
2219             will override any component specific values (a value of "true" will not override the
2220             component specific values). -->
2221        <attr name="enabled" />
2222        <attr name="exported" />
2223        <attr name="parentActivityName" />
2224    </declare-styleable>
2225
2226    <!-- The <code>meta-data</code> tag is used to attach additional
2227         arbitrary data to an application component.  The data can later
2228         be retrieved programmatically from the
2229         {@link android.content.pm.ComponentInfo#metaData
2230         ComponentInfo.metaData} field.  There is no meaning given to this
2231         data by the system.  You may supply the data through either the
2232         <code>value</code> or <code>resource</code> attribute; if both
2233         are given, then <code>resource</code> will be used.
2234
2235         <p>It is highly recommended that you avoid supplying related data as
2236         multiple separate meta-data entries.  Instead, if you have complex
2237         data to associate with a component, then use the <code>resource</code>
2238         attribute to assign an XML resource that the client can parse to
2239         retrieve the complete data. -->
2240    <declare-styleable name="AndroidManifestMetaData"
2241         parent="AndroidManifestApplication
2242                 AndroidManifestActivity
2243                 AndroidManifestReceiver
2244                 AndroidManifestProvider
2245                 AndroidManifestService
2246                 AndroidManifestPermission
2247                 AndroidManifestPermissionGroup
2248                 AndroidManifestInstrumentation">
2249        <attr name="name" />
2250        <!-- Concrete value to assign to this piece of named meta-data.
2251             The data can later be retrieved from the meta data Bundle
2252             through {@link android.os.Bundle#getString Bundle.getString},
2253             {@link android.os.Bundle#getInt Bundle.getInt},
2254             {@link android.os.Bundle#getBoolean Bundle.getBoolean},
2255             or {@link android.os.Bundle#getFloat Bundle.getFloat} depending
2256             on the type used here. -->
2257        <attr name="value" format="string|integer|color|float|boolean" />
2258        <!-- Resource identifier to assign to this piece of named meta-data.
2259             The resource identifier can later be retrieved from the meta data
2260             Bundle through {@link android.os.Bundle#getInt Bundle.getInt}. -->
2261        <attr name="resource" format="reference" />
2262    </declare-styleable>
2263
2264    <!-- The <code>intent-filter</code> tag is used to construct an
2265         {@link android.content.IntentFilter} object that will be used
2266         to determine which component can handle a particular
2267         {@link android.content.Intent} that has been given to the system.
2268         It can be used as a child of the
2269         {@link #AndroidManifestActivity activity},
2270         {@link #AndroidManifestReceiver receiver} and
2271         {@link #AndroidManifestService service}
2272         tags.
2273
2274         <p> Zero or more {@link #AndroidManifestAction action},
2275         {@link #AndroidManifestCategory category}, and/or
2276         {@link #AndroidManifestData data} tags should be
2277         included inside to describe the contents of the filter.
2278
2279         <p> The optional label and icon attributes here are used with
2280         an activity to supply an alternative description of that activity
2281         when it is being started through an Intent matching this filter. -->
2282    <declare-styleable name="AndroidManifestIntentFilter"
2283         parent="AndroidManifestActivity AndroidManifestReceiver AndroidManifestService">
2284        <attr name="label" />
2285        <attr name="icon" />
2286        <attr name="roundIcon" />
2287        <attr name="banner" />
2288        <attr name="logo" />
2289        <attr name="priority" />
2290        <attr name="autoVerify" />
2291    </declare-styleable>
2292
2293    <!-- Attributes that can be supplied in an AndroidManifest.xml
2294         <code>action</code> tag, a child of the
2295         {@link #AndroidManifestIntentFilter intent-filter} tag.
2296         See {@link android.content.IntentFilter#addAction} for
2297         more information. -->
2298    <declare-styleable name="AndroidManifestAction" parent="AndroidManifestIntentFilter">
2299        <!-- The name of an action that is handled, using the Java-style
2300             naming convention.  For example, to support
2301             {@link android.content.Intent#ACTION_VIEW Intent.ACTION_VIEW}
2302             you would put <code>android.intent.action.VIEW</code> here.
2303             Custom actions should generally use a prefix matching the
2304             package name. -->
2305        <attr name="name" />
2306    </declare-styleable>
2307
2308    <!-- Attributes that can be supplied in an AndroidManifest.xml
2309         <code>data</code> tag, a child of the
2310         {@link #AndroidManifestIntentFilter intent-filter} tag, describing
2311         the types of data that match.  This tag can be specified multiple
2312         times to supply multiple data options, as described in the
2313         {@link android.content.IntentFilter} class.  Note that all such
2314         tags are adding options to the same IntentFilter so that, for example,
2315         <code>&lt;data android:scheme="myscheme" android:host="me.com" /&gt;</code>
2316         is equivalent to <code>&lt;data android:scheme="myscheme" /&gt;
2317         &lt;data android:host="me.com" /&gt;</code>. -->
2318    <declare-styleable name="AndroidManifestData" parent="AndroidManifestIntentFilter">
2319        <!-- Specify a MIME type that is handled, as per
2320             {@link android.content.IntentFilter#addDataType
2321             IntentFilter.addDataType()}.
2322             <p><em>Note: MIME type matching in the Android framework is
2323             case-sensitive, unlike formal RFC MIME types.  As a result,
2324             MIME types here should always use lower case letters.</em></p> -->
2325        <attr name="mimeType" format="string" />
2326        <!-- Specify a URI scheme that is handled, as per
2327             {@link android.content.IntentFilter#addDataScheme
2328             IntentFilter.addDataScheme()}.
2329             <p><em>Note: scheme matching in the Android framework is
2330             case-sensitive, unlike the formal RFC.  As a result,
2331             schemes here should always use lower case letters.</em></p> -->
2332        <attr name="scheme" format="string" />
2333        <!-- Specify a URI scheme specific part that must exactly match, as per
2334             {@link android.content.IntentFilter#addDataSchemeSpecificPart
2335             IntentFilter.addDataSchemeSpecificPart()} with
2336             {@link android.os.PatternMatcher#PATTERN_LITERAL}. -->
2337        <attr name="ssp" format="string" />
2338        <!-- Specify a URI scheme specific part that must be a prefix to match, as per
2339             {@link android.content.IntentFilter#addDataSchemeSpecificPart
2340             IntentFilter.addDataSchemeSpecificPart()} with
2341             {@link android.os.PatternMatcher#PATTERN_PREFIX}. -->
2342        <attr name="sspPrefix" format="string" />
2343        <!-- Specify a URI scheme specific part that matches a simple pattern, as per
2344             {@link android.content.IntentFilter#addDataSchemeSpecificPart
2345             IntentFilter.addDataSchemeSpecificPart()} with
2346             {@link android.os.PatternMatcher#PATTERN_SIMPLE_GLOB}.
2347             Note that because '\' is used as an escape character when
2348             reading the string from XML (before it is parsed as a pattern),
2349             you will need to double-escape: for example a literal "*" would
2350             be written as "\\*" and a literal "\" would be written as
2351             "\\\\".  This is basically the same as what you would need to
2352             write if constructing the string in Java code. -->
2353        <attr name="sspPattern" format="string" />
2354        <!-- Specify a URI authority host that is handled, as per
2355             {@link android.content.IntentFilter#addDataAuthority
2356             IntentFilter.addDataAuthority()}.
2357             <p><em>Note: host name matching in the Android framework is
2358             case-sensitive, unlike the formal RFC.  As a result,
2359             host names here should always use lower case letters.</em></p> -->
2360        <attr name="host" format="string" />
2361        <!-- Specify a URI authority port that is handled, as per
2362             {@link android.content.IntentFilter#addDataAuthority
2363             IntentFilter.addDataAuthority()}.  If a host is supplied
2364             but not a port, any port is matched. -->
2365        <attr name="port" format="string" />
2366        <!-- Specify a URI path that must exactly match, as per
2367             {@link android.content.IntentFilter#addDataPath
2368             IntentFilter.addDataPath()} with
2369             {@link android.os.PatternMatcher#PATTERN_LITERAL}. -->
2370        <attr name="path" />
2371        <!-- Specify a URI path that must be a prefix to match, as per
2372             {@link android.content.IntentFilter#addDataPath
2373             IntentFilter.addDataPath()} with
2374             {@link android.os.PatternMatcher#PATTERN_PREFIX}. -->
2375        <attr name="pathPrefix" />
2376        <!-- Specify a URI path that matches a simple pattern, as per
2377             {@link android.content.IntentFilter#addDataPath
2378             IntentFilter.addDataPath()} with
2379             {@link android.os.PatternMatcher#PATTERN_SIMPLE_GLOB}.
2380             Note that because '\' is used as an escape character when
2381             reading the string from XML (before it is parsed as a pattern),
2382             you will need to double-escape: for example a literal "*" would
2383             be written as "\\*" and a literal "\" would be written as
2384             "\\\\".  This is basically the same as what you would need to
2385             write if constructing the string in Java code. -->
2386        <attr name="pathPattern" />
2387        <!-- Specify a URI path that matches an advanced pattern, as per
2388             {@link android.content.IntentFilter#addDataPath
2389             IntentFilter.addDataPath()} with
2390             {@link android.os.PatternMatcher#PATTERN_ADVANCED_GLOB}.
2391             Note that because '\' is used as an escape character when
2392             reading the string from XML (before it is parsed as a pattern),
2393             you will need to double-escape: for example a literal "*" would
2394             be written as "\\*" and a literal "\" would be written as
2395             "\\\\".  This is basically the same as what you would need to
2396             write if constructing the string in Java code. -->
2397        <attr name="pathAdvancedPattern" />
2398    </declare-styleable>
2399
2400    <!-- Attributes that can be supplied in an AndroidManifest.xml
2401         <code>category</code> tag, a child of the
2402         {@link #AndroidManifestIntentFilter intent-filter} tag.
2403         See {@link android.content.IntentFilter#addCategory} for
2404         more information. -->
2405    <declare-styleable name="AndroidManifestCategory" parent="AndroidManifestIntentFilter">
2406        <!-- The name of category that is handled, using the Java-style
2407             naming convention.  For example, to support
2408             {@link android.content.Intent#CATEGORY_LAUNCHER Intent.CATEGORY_LAUNCHER}
2409             you would put <code>android.intent.category.LAUNCHER</code> here.
2410             Custom actions should generally use a prefix matching the
2411             package name. -->
2412        <attr name="name" />
2413    </declare-styleable>
2414
2415    <!-- Attributes that can be supplied in an AndroidManifest.xml
2416         <code>instrumentation</code> tag, a child of the root
2417         {@link #AndroidManifest manifest} tag. -->
2418    <declare-styleable name="AndroidManifestInstrumentation" parent="AndroidManifest">
2419        <!-- Required name of the class implementing the instrumentation, deriving from
2420            {@link android.app.Instrumentation}.  This is a fully
2421            qualified class name (for example, com.mycompany.myapp.MyActivity); as a
2422            short-hand if the first character of the class
2423            is a period then it is appended to your package name. -->
2424        <attr name="name" />
2425        <attr name="targetPackage" />
2426        <attr name="targetProcesses" />
2427        <attr name="label" />
2428        <attr name="icon" />
2429        <attr name="roundIcon" />
2430        <attr name="banner" />
2431        <attr name="logo" />
2432        <attr name="handleProfiling" />
2433        <attr name="functionalTest" />
2434    </declare-styleable>
2435
2436    <!-- Attributes that can be supplied in an AndroidManifest.xml
2437         <code>screen</code> tag, a child of <code>compatible-screens</code>,
2438         which is itself a child of the root
2439         {@link #AndroidManifest manifest} tag. -->
2440    <declare-styleable name="AndroidManifestCompatibleScreensScreen"
2441                       parent="AndroidManifest.AndroidManifestCompatibleScreens">
2442        <!-- Specifies a compatible screen size, as per the device
2443             configuration screen size bins. -->
2444        <attr name="screenSize">
2445            <!-- A small screen configuration, at least 240x320dp. -->
2446            <enum name="small" value="200" />
2447            <!-- A normal screen configuration, at least 320x480dp. -->
2448            <enum name="normal" value="300" />
2449            <!-- A large screen configuration, at least 400x530dp. -->
2450            <enum name="large" value="400" />
2451            <!-- An extra large screen configuration, at least 600x800dp. -->
2452            <enum name="xlarge" value="500" />
2453        </attr>
2454        <!-- Specifies a compatible screen density, as per the device
2455             configuration screen density bins. -->
2456        <attr name="screenDensity" format="integer">
2457            <!-- A low density screen, approximately 120dpi. -->
2458            <enum name="ldpi" value="120" />
2459            <!-- A medium density screen, approximately 160dpi. -->
2460            <enum name="mdpi" value="160" />
2461            <!-- A high density screen, approximately 240dpi. -->
2462            <enum name="hdpi" value="240" />
2463            <!-- An extra high density screen, approximately 320dpi. -->
2464            <enum name="xhdpi" value="320" />
2465            <!-- An extra extra high density screen, approximately 480dpi. -->
2466            <enum name="xxhdpi" value="480" />
2467            <!-- An extra extra extra high density screen, approximately 640dpi. -->
2468            <enum name="xxxhdpi" value="640" />
2469        </attr>
2470    </declare-styleable>
2471
2472    <!-- The <code>input-type</code> tag is a child of the <code>supports-input</code> tag, which
2473         is itself a child of the root {@link #AndroidManifest manifest} tag. Each
2474         <code>input-type</code> tag specifices the name of a specific input device type. When
2475         grouped with the other elements of the parent <code>supports-input</code> tag it defines
2476         a collection of input devices, which when all used together, are considered a supported
2477         input mechanism for the application. There may be multiple <code>supports-input</code>
2478         tags defined, each containing a different combination of input device types. -->
2479    <declare-styleable name="AndroidManifestSupportsInputInputType"
2480                       parent="AndroidManifest.AndroidManifestSupportsInput">
2481        <!-- Specifices the name of the input device type -->
2482        <attr name="name" />
2483    </declare-styleable>
2484
2485    <!-- The attribute that holds a Base64-encoded public key. -->
2486    <attr name="publicKey" format="string" />
2487
2488    <!-- Attributes relating to a package verifier. -->
2489    <declare-styleable name="AndroidManifestPackageVerifier" parent="AndroidManifest">
2490        <!-- Specifies the Java-style package name that defines this
2491             package verifier. -->
2492        <attr name="name" />
2493
2494        <!-- The Base64 encoded public key of the package verifier's
2495             signature. -->
2496        <attr name="publicKey" />
2497    </declare-styleable>
2498
2499    <!-- Attributes relating to resource overlay packages. -->
2500    <declare-styleable name="AndroidManifestResourceOverlay" parent="AndroidManifest">
2501        <!-- Package name of base package whose resources will be overlaid. -->
2502        <attr name="targetPackage" />
2503
2504        <!-- Load order of overlay package. -->
2505        <attr name="priority" />
2506
2507        <!-- Whether the given RRO is static or not. -->
2508        <attr name="isStatic" format="boolean" />
2509
2510        <!-- Required property name/value pair used to enable this overlay.
2511             e.g. name=ro.oem.sku value=MKT210.
2512             Overlay will be ignored unless system property exists and is
2513             set to specified value -->
2514        <!-- @hide @SystemApi This shouldn't be public. -->
2515        <attr name="requiredSystemPropertyName" format="string" />
2516        <!-- @hide @SystemApi This shouldn't be public. -->
2517        <attr name="requiredSystemPropertyValue" format="string" />
2518    </declare-styleable>
2519
2520    <!-- Declaration of an {@link android.content.Intent} object in XML.  May
2521         also include zero or more {@link #IntentCategory <category>} and
2522         {@link #Extra <extra>} tags. -->
2523    <declare-styleable name="Intent">
2524        <!-- The action name to assign to the Intent, as per
2525            {@link android.content.Intent#setAction Intent.setAction()}. -->
2526        <attr name="action" format="string" />
2527        <!-- The data URI to assign to the Intent, as per
2528            {@link android.content.Intent#setData Intent.setData()}.
2529            <p><em>Note: scheme and host name matching in the Android framework is
2530            case-sensitive, unlike the formal RFC.  As a result,
2531            URIs here should always be normalized to use lower case letters
2532            for these elements (as well as other proper Uri normalization).</em></p> -->
2533        <attr name="data" format="string" />
2534        <!-- The MIME type name to assign to the Intent, as per
2535            {@link android.content.Intent#setType Intent.setType()}.
2536            <p><em>Note: MIME type matching in the Android framework is
2537            case-sensitive, unlike formal RFC MIME types.  As a result,
2538            MIME types here should always use lower case letters.</em></p> -->
2539        <attr name="mimeType" />
2540        <!-- The package part of the ComponentName to assign to the Intent, as per
2541            {@link android.content.Intent#setComponent Intent.setComponent()}. -->
2542        <attr name="targetPackage" />
2543        <!-- The class part of the ComponentName to assign to the Intent, as per
2544            {@link android.content.Intent#setComponent Intent.setComponent()}. -->
2545        <attr name="targetClass" format="string" />
2546    </declare-styleable>
2547
2548    <!-- A category to add to an Intent, as per
2549            {@link android.content.Intent#addCategory Intent.addCategory()}. -->
2550    <declare-styleable name="IntentCategory" parent="Intent">
2551        <!-- Required name of the category. -->
2552        <attr name="name" />
2553    </declare-styleable>
2554
2555    <!-- An extra data value to place into a an extra/name value pair held
2556            in a Bundle, as per {@link android.os.Bundle}. -->
2557    <declare-styleable name="Extra" parent="Intent">
2558        <!-- Required name of the extra data. -->
2559        <attr name="name" />
2560        <!-- Concrete value to put for this named extra data. -->
2561        <attr name="value" />
2562    </declare-styleable>
2563
2564    <!-- Groups signing keys into a {@code KeySet} for easier reference in
2565            other APIs. However, currently no APIs use this. -->
2566    <attr name="keySet" />
2567    <declare-styleable name="AndroidManifestPublicKey">
2568        <attr name="name" />
2569        <attr name="value" />
2570    </declare-styleable>
2571    <declare-styleable name="AndroidManifestKeySet">
2572        <attr name="name" />
2573    </declare-styleable>
2574
2575    <!-- Associate declared KeySets with upgrading capability. -->
2576    <declare-styleable name="AndroidManifestUpgradeKeySet" parent="AndroidManifest">
2577      <attr name="name" />
2578    </declare-styleable>
2579
2580    <!-- <code>layout</code> tag allows configuring the layout for the activity within multi-window
2581         environment. -->
2582    <declare-styleable name="AndroidManifestLayout" parent="AndroidManifestActivity">
2583        <!-- Default width of the activity. Can be either a fixed value or fraction, in which case
2584             the width will be constructed as a fraction of the total available width. -->
2585        <attr name="defaultWidth" format="dimension|fraction" />
2586        <!-- Default height of the activity. Can be either a fixed value or fraction, in which case
2587             the height will be constructed as a fraction of the total available height. -->
2588        <attr name="defaultHeight" format="dimension|fraction" />
2589        <!-- Where to initially position the activity inside the available space. Uses constants
2590             defined in {@link android.view.Gravity}. -->
2591        <attr name="gravity" />
2592        <!-- Minimal width of the activity.
2593
2594         <p><strong>NOTE:</strong> A task's root activity value is applied to all additional
2595         activities launched in the task. That is if the root activity of a task set minimal width,
2596         then the system will set the same minimal width on all other activities in the task. It
2597         will also ignore any other minimal width attributes of non-root activities. -->
2598        <attr name="minWidth" />
2599        <!-- Minimal height of the activity.
2600
2601         <p><strong>NOTE:</strong> A task's root activity value is applied to all additional
2602         activities launched in the task. That is if the root activity of a task set minimal height,
2603         then the system will set the same minimal height on all other activities in the task. It
2604         will also ignore any other minimal height attributes of non-root activities. -->
2605        <attr name="minHeight" />
2606    </declare-styleable>
2607
2608    <!-- <code>restrict-update</code> tag restricts system apps from being updated unless the
2609        SHA-512 hash equals the specified value.
2610        @hide -->
2611    <declare-styleable name="AndroidManifestRestrictUpdate" parent="AndroidManifest">
2612        <!-- The SHA-512 hash of the only APK that can be used to update a package.
2613             <p>NOTE: This is only applicable to system packages.
2614             @hide -->
2615        <attr name="hash" format="string" />
2616    </declare-styleable>
2617
2618    <declare-styleable name="AndroidManifestUsesSplit" parent="AndroidManifest">
2619        <attr name="name" format="string" />
2620    </declare-styleable>
2621
2622</resources>
2623