Home | History | Annotate | Download | only in values
      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 an extended graphical logo for its
     66          associated item. Use with the application tag (to supply a default
     67          logo for all application components), or with the activity, receiver,
     68          service, or instrumentation tag (to supply a specific logo for that
     69          component). It may also be used with the intent-filter tag to supply
     70          a logo to show to the user when an activity is being selected based
     71          on a particular Intent.
     72 
     73          <p>The given logo will be used to display to the user a graphical
     74          representation of its associated component; for example as the
     75          header in the Action Bar. The primary differences between an icon
     76          and a logo are that logos are often wider and more detailed, and are
     77          used without an accompanying text caption. This must be a reference
     78          to a Drawable resource containing the image definition. -->
     79     <attr name="logo" format="reference" />
     80 
     81     <!-- Name of the activity to be launched to manage application's space on
     82          device. The specified activity gets automatically launched when the
     83          application's space needs to be managed and is usually invoked 
     84          through user actions. Applications can thus provide their own custom
     85          behavior for managing space for various scenarios like out of memory
     86          conditions. This is an optional attribute and
     87          applications can choose not to specify a default activity to 
     88          manage space. -->
     89     <attr name="manageSpaceActivity" format="string" />
     90 
     91     <!-- Option to let applications specify that user data can/cannot be 
     92          cleared. This flag is turned on by default.
     93          <em>This attribute is usable only by applications
     94          included in the system image. Third-party apps cannot use it.</em> -->
     95     <attr name="allowClearUserData" format="boolean" />
     96 
     97     <!-- Option to let applications specify that user data should
     98          never be encrypted if an Encrypted File System solution
     99          is enabled. Specifically, this is an "opt-out" feature, meaning
    100          that, by default, user data will be encrypted if the EFS feature
    101          is enabled. -->
    102     <attr name="neverEncrypt" format="boolean" />
    103 
    104     <!-- Option to indicate this application is only for testing purposes.
    105          For example, it may expose functionality or data outside of itself
    106          that would cause a security hole, but is useful for testing.  This
    107          kind of application can not be installed without the
    108          INSTALL_ALLOW_TEST flag, which means only through adb install.  -->
    109     <attr name="testOnly" format="boolean" />
    110     
    111     <!-- A unique name for the given item.  This must use a Java-style naming
    112          convention to ensure the name is unique, for example
    113          "com.mycompany.MyName". -->  
    114     <attr name="name" format="string" />
    115     
    116     <!-- Specify a permission that a client is required to have in order to
    117     	 use the associated object.  If the client does not hold the named
    118     	 permission, its request will fail.  See the
    119          <a href="{@docRoot}guide/topics/security/security.html">Security and Permissions</a>
    120          document for more information on permissions. -->
    121     <attr name="permission" format="string" />
    122     
    123     <!-- A specific {@link android.R.attr#permission} name for read-only
    124          access to a {@link android.content.ContentProvider}.  See the
    125          <a href="{@docRoot}guide/topics/security/security.html">Security and Permissions</a>
    126          document for more information on permissions. -->
    127     <attr name="readPermission" format="string" />
    128     
    129     <!-- A specific {@link android.R.attr#permission} name for write
    130          access to a {@link android.content.ContentProvider}.  See the
    131          <a href="{@docRoot}guide/topics/security/security.html">Security and Permissions</a>
    132          document for more information on permissions. -->
    133     <attr name="writePermission" format="string" />
    134     
    135     <!-- If true, the {@link android.content.Context#grantUriPermission
    136          Context.grantUriPermission} or corresponding Intent flags can
    137          be used to allow others to access specific URIs in the content
    138          provider, even if they do not have an explicit read or write
    139          permission.  If you are supporting this feature, you must be
    140          sure to call {@link android.content.Context#revokeUriPermission
    141          Context.revokeUriPermission} when URIs are deleted from your
    142          provider.-->
    143     <attr name="grantUriPermissions" format="boolean" />
    144     
    145     <!-- Characterizes the potential risk implied in a permission and
    146          indicates the procedure the system should follow when determining
    147          whether to grant the permission to an application requesting it. {@link
    148          android.Manifest.permission Standard permissions} have a predefined and
    149          permanent protectionLevel. If you are creating a custom permission in an
    150          application, you can define a protectionLevel attribute with one of the
    151          values listed below. If no protectionLevel is defined for a custom
    152          permission, the system assigns the default ("normal"). -->
    153     <attr name="protectionLevel">
    154         <!-- A lower-risk permission that gives an application access to isolated
    155              application-level features, with minimal risk to other applications,
    156              the system, or the user. The system automatically grants this type
    157              of permission to a requesting application at installation, without
    158              asking for the user's explicit approval (though the user always
    159              has the option to review these permissions before installing). -->
    160         <enum name="normal" value="0" />
    161         <!-- A higher-risk permission that would give a requesting application
    162              access to private user data or control over the device that can
    163              negatively impact the user.  Because this type of permission
    164              introduces potential risk, the system may not automatically
    165              grant it to the requesting application.  For example, any dangerous
    166              permissions requested by an application may be displayed to the
    167              user and require confirmation before proceeding, or some other
    168              approach may be taken to avoid the user automatically allowing
    169              the use of such facilities.  -->
    170         <enum name="dangerous" value="1" />
    171         <!-- A permission that the system is to grant only if the requesting
    172              application is signed with the same certificate as the application
    173              that declared the permission. If the certificates match, the system
    174              automatically grants the permission without notifying the user or
    175              asking for the user's explicit approval. -->
    176         <enum name="signature" value="2" />
    177         <!-- A permission that the system is to grant only to packages in the
    178              Android system image <em>or</em> that are signed with the same
    179              certificates. Please avoid using this option, as the
    180              signature protection level should be sufficient for most needs and
    181              works regardless of exactly where applications are installed.  This
    182              permission is used for certain special situations where multiple
    183              vendors have applications built in to a system image which need
    184              to share specific features explicitly because they are being built
    185              together. -->
    186         <enum name="signatureOrSystem" value="3" />
    187     </attr>
    188     
    189     <!-- Specified the name of a group that this permission is associated
    190          with.  The group must have been defined with the
    191          {@link android.R.styleable#AndroidManifestPermissionGroup permission-group} tag. -->
    192     <attr name="permissionGroup" format="string" />
    193     
    194     <!-- Specify the name of a user ID that will be shared between multiple
    195          packages.  By default, each package gets its own unique user-id.
    196          By setting this value on two or more packages, each of these packages
    197          will be given a single shared user ID, so they can for example run
    198          in the same process.  Note that for them to actually get the same
    199          user ID, they must also be signed with the same signature. -->
    200     <attr name="sharedUserId" format="string" />
    201     
    202     <!-- Specify a label for the shared user UID of this package.  This is
    203          only used if you have also used android:sharedUserId.  This must
    204          be a reference to a string resource; it can not be an explicit
    205          string. -->
    206     <attr name="sharedUserLabel" format="reference" />
    207     
    208     <!-- Internal version code.  This is the number used to determine whether
    209          one version is more recent than another: it has no other meaning than
    210          that higher numbers are more recent.  You could use this number to
    211          encode a "x.y" in the lower and upper 16 bits, make it a build
    212          number, simply increase it by one each time a new version is
    213          released, or define it however else you want, as long as each
    214          successive version has a higher number.  This is not a version
    215          number generally shown to the user, that is usually supplied 
    216          with {@link android.R.attr#versionName}. -->
    217     <attr name="versionCode" format="integer" />
    218     
    219     <!-- The text shown to the user to indicate the version they have.  This
    220          is used for no other purpose than display to the user; the actual
    221          significant version number is given by {@link android.R.attr#versionCode}. -->
    222     <attr name="versionName" format="string" />
    223     
    224     <!-- Flag to control special persistent mode of an application.  This should
    225          not normally be used by applications; it requires that the system keep
    226          your application running at all times. -->
    227     <attr name="persistent" format="boolean" />
    228     
    229     <!-- Flag indicating whether the application can be debugged, even when
    230          running on a device that is running in user mode. -->
    231     <attr name="debuggable" format="boolean" />
    232     
    233     <!-- Flag indicating whether the application requests the VM to operate in
    234          the safe mode.  -->
    235     <attr name="vmSafeMode" format="boolean" />
    236 
    237     <!-- <p>Flag indicating whether the application's rendering should be hardware
    238          accelerated if possible. This flag is turned on by default for applications
    239          that are targeting {@link android.os.Build.VERSION_CODES#ICE_CREAM_SANDWICH}
    240          or later.</p>
    241          <p>This flag can be set on the application and any activity declared
    242          in the manifest. When enabled for the application, each activity is
    243          automatically assumed to be hardware accelerated. This flag can be
    244          overridden in the activity tags, either turning it off (if on for the
    245          application) or on (if off for the application.)</p>
    246          <p>When this flag is turned on for an activity (either directly or via
    247          the application tag), every window created from the activity, including
    248          the activity's own window, will be hardware accelerated, if possible.</p>
    249          <p>Please refer to the documentation of
    250          {@link android.view.WindowManager.LayoutParams#FLAG_HARDWARE_ACCELERATED}
    251          for more information on how to control this flag programmatically.</p> -->
    252     <attr name="hardwareAccelerated" format="boolean" />
    253 
    254     <!-- Flag indicating whether the given application component is available
    255          to other applications.  If false, it can only be accessed by
    256          applications with its same user id (which usually means only by
    257          code in its own package).  If true, it can be invoked by external
    258          entities, though which ones can do so may be controlled through
    259          permissions.  The default value is false for activity, receiver,
    260          and service components that do not specify any intent filters; it
    261          is true for activity, receiver, and service components that do
    262          have intent filters (implying they expect to be invoked by others
    263          who do not know their particular component name) and for all
    264          content providers. -->
    265     <attr name="exported" format="boolean" />
    266     
    267     <!-- Specify a specific process that the associated code is to run in.
    268          Use with the application tag (to supply a default process for all
    269          application components), or with the activity, receiver, service,
    270          or provider tag (to supply a specific icon for that component).
    271     
    272          <p>Application components are normally run in a single process that
    273          is created for the entire application.  You can use this tag to modify
    274          where they run.  If the process name begins with a ':' character,
    275          a new process private to that application will be created when needed
    276          to run that component (allowing you to spread your application across
    277          multiple processes).  If the process name begins with a lower-case
    278          character, the component will be run in a global process of that name,
    279          provided that you have permission to do so, allowing multiple
    280          applications to share one process to reduce resource usage. -->
    281     <attr name="process" format="string" />
    282     
    283     <!-- Specify a task name that activities have an "affinity" to.
    284          Use with the application tag (to supply a default affinity for all
    285          activities in the application), or with the activity tag (to supply
    286          a specific affinity for that component).
    287     
    288          <p>The default value for this attribute is the same as the package
    289          name, indicating that all activities in the manifest should generally
    290          be considered a single "application" to the user.  You can use this
    291          attribute to modify that behavior: either giving them an affinity
    292          for another task, if the activities are intended to be part of that
    293          task from the user's perspective, or using an empty string for
    294          activities that have no affinity to a task. -->
    295     <attr name="taskAffinity" format="string" />
    296     
    297     <!-- Specify that an activity can be moved out of a task it is in to
    298          the task it has an affinity for when appropriate.  Use with the
    299          application tag (to supply a default for all activities in the
    300          application), or with an activity tag (to supply a specific
    301          setting for that component).
    302     
    303          <p>Normally when an application is started, it is associated with
    304          the task of the activity that started it and stays there for its
    305          entire lifetime.  You can use the allowTaskReparenting feature to force an
    306          activity to be re-parented to a different task when the task it is
    307          in goes to the background.  Typically this is used to cause the
    308          activities of an application to move back to the main task associated
    309          with that application.  The activity is re-parented to the task
    310          with the same {@link android.R.attr#taskAffinity} as it has. -->
    311     <attr name="allowTaskReparenting" format="boolean" />
    312     
    313     <!-- Specify whether a component is allowed to have multiple instances
    314          of itself running in different processes.  Use with the activity
    315          and provider tags.
    316     
    317          <p>Normally the system will ensure that all instances of a particular
    318          component are only running in a single process.  You can use this
    319          attribute to disable that behavior, allowing the system to create
    320          instances wherever they are used (provided permissions allow it).
    321          This is most often used with content providers, so that instances
    322          of a provider can be created in each client process, allowing them
    323          to be used without performing IPC.  -->
    324     <attr name="multiprocess" format="boolean" />
    325     
    326     <!-- Specify whether an activity should be finished when its task is
    327          brought to the foreground by relaunching from the home screen.
    328          
    329          <p>If both this option and {@link android.R.attr#allowTaskReparenting} are
    330          specified, the finish trumps the affinity: the affinity will be
    331          ignored and the activity simply finished. -->
    332     <attr name="finishOnTaskLaunch" format="boolean" />
    333     
    334     <!-- Specify whether an activity should be finished when a "close system
    335          windows" request has been made.  This happens, for example, when
    336          the home key is pressed, when the device is locked, when a system
    337          dialog showing recent applications is displayed, etc. -->
    338     <attr name="finishOnCloseSystemDialogs" format="boolean" />
    339     
    340     <!-- Specify whether an activity's task should be cleared when it
    341          is re-launched from the home screen.  As a result, every time the
    342          user starts the task, they will be brought to its root activity,
    343          regardless of whether they used BACK or HOME to last leave it.
    344          This flag only applies to activities that
    345          are used to start the root of a new task.
    346          
    347          <p>An example of the use of this flag would be for the case where
    348          a user launches activity A from home, and from there goes to
    349          activity B.  They now press home, and then return to activity A.
    350          Normally they would see activity B, since that is what they were
    351          last doing in A's task.  However, if A has set this flag to true,
    352          then upon going to the background all of the tasks on top of it (B
    353          in this case) are removed, so when the user next returns to A they
    354          will restart at its original activity.
    355          
    356          <p>When this option is used in conjunction with
    357          {@link android.R.attr#allowTaskReparenting}, the allowTaskReparenting trumps the
    358          clear.  That is, all activities above the root activity of the
    359          task will be removed: those that have an affinity will be moved
    360          to the task they are associated with, otherwise they will simply
    361          be dropped as described here. -->
    362     <attr name="clearTaskOnLaunch" format="boolean" />
    363     
    364     <!-- Specify whether an activity should be kept in its history stack.
    365          If this attribute is set, then as soon as the user navigates away
    366          from the activity it will be finished and they will no longer be
    367          able to return to it. -->
    368     <attr name="noHistory" format="boolean" />
    369     
    370     <!-- Specify whether an acitivty's task state should always be maintained
    371          by the system, or if it is allowed to reset the task to its initial
    372          state in certain situations.
    373          
    374          <p>Normally the system will reset a task (remove all activities from
    375          the stack and reset the root activity) in certain situations when
    376          the user re-selects that task from the home screen.  Typically this
    377          will be done if the user hasn't visited that task for a certain
    378          amount of time, such as 30 minutes.
    379          
    380          <p>By setting this attribute, the user will always return to your
    381          task in its last state, regardless of how they get there.  This is
    382          useful, for example, in an application like the web browser where there
    383          is a lot of state (such as multiple open tabs) that the application
    384          would not like to lose. -->
    385     <attr name="alwaysRetainTaskState" format="boolean" />
    386     
    387     <!-- Indicates that an Activity does not need to have its freeze state
    388          (as returned by {@link android.app.Activity#onSaveInstanceState}
    389          retained in order to be restarted.  Generally you use this for activities
    390          that do not store any state.  When this flag is set, if for some reason
    391          the activity is killed before it has a chance to save its state,
    392          then the system will not remove it from the activity stack like
    393          it normally would.  Instead, the next time the user navigates to
    394          it its {@link android.app.Activity#onCreate} method will be called
    395          with a null icicle, just like it was starting for the first time.
    396          
    397          <p>This is used by the Home activity to make sure it does not get
    398          removed if it crashes for some reason. -->
    399     <attr name="stateNotNeeded" format="boolean" />
    400 
    401     <!-- Indicates that an Activity should be excluded from the list of
    402          recently launched activities. -->
    403     <attr name="excludeFromRecents" format="boolean" />
    404 
    405     <!-- Specify the authorities under which this content provider can be
    406          found.  Multiple authorities may be supplied by separating them
    407          with a semicolon.  Authority names should use a Java-style naming
    408          convention (such as <code>com.google.provider.MyProvider</code>)
    409          in order to avoid conflicts.  Typically this name is the same
    410          as the class implementation describing the provider's data structure. -->
    411     <attr name="authorities" format="string" />
    412     
    413     <!-- Flag indicating whether this content provider would like to
    414          participate in data synchronization. -->
    415     <attr name="syncable" format="boolean" />
    416     
    417     <!-- Flag declaring this activity to be 'immersive'; immersive activities
    418          should not be interrupted with other activities or notifications. -->
    419     <attr name="immersive" format="boolean" />
    420 
    421     <!-- Specify the order in which content providers hosted by a process
    422          are instantiated when that process is created.  Not needed unless
    423          you have providers with dependencies between each other, to make
    424          sure that they are created in the order needed by those dependencies.
    425          The value is a simple integer, with higher numbers being
    426          initialized first. -->
    427     <attr name="initOrder" format="integer" />
    428     
    429     <!-- Specify the relative importance or ability in handling a particular
    430          Intent.  For receivers, this controls the order in which they are
    431          executed to receive a broadcast (note that for
    432          asynchronous broadcasts, this order is ignored).  For activities,
    433          this provides information about how good an activity is handling an
    434          Intent; when multiple activities match an intent and have different
    435          priorities, only those with the higher priority value will be
    436          considered a match.
    437          
    438          <p>Only use if you really need to impose some specific
    439          order in which the broadcasts are received, or want to forcibly
    440          place an activity to always be preferred over others.  The value is a
    441          single integer, with higher numbers considered to be better. -->
    442     <attr name="priority" format="integer" />
    443     
    444     <!-- Specify how an activity should be launched.  See the
    445          <a href="{@docRoot}guide/topics/fundamentals/tasks-and-back-stack.html">Tasks and Back
    446          Stack</a> document for important information on how these options impact
    447          the behavior of your application.
    448          
    449          <p>If this attribute is not specified, <code>standard</code> launch
    450          mode will be used.  Note that the particular launch behavior can
    451          be changed in some ways at runtime through the
    452          {@link android.content.Intent} flags
    453          {@link android.content.Intent#FLAG_ACTIVITY_SINGLE_TOP},
    454          {@link android.content.Intent#FLAG_ACTIVITY_NEW_TASK}, and
    455          {@link android.content.Intent#FLAG_ACTIVITY_MULTIPLE_TASK}. -->
    456     <attr name="launchMode">
    457         <!-- The default mode, which will usually create a new instance of
    458              the activity when it is started, though this behavior may change
    459              with the introduction of other options such as
    460              {@link android.content.Intent#FLAG_ACTIVITY_NEW_TASK
    461              Intent.FLAG_ACTIVITY_NEW_TASK}. -->
    462         <enum name="standard" value="0" />
    463         <!-- If, when starting the activity, there is already an
    464             instance of the same activity class in the foreground that is
    465             interacting with the user, then
    466             re-use that instance.  This existing instance will receive a call to
    467             {@link android.app.Activity#onNewIntent Activity.onNewIntent()} with
    468             the new Intent that is being started. -->
    469         <enum name="singleTop" value="1" />
    470         <!-- If, when starting the activity, there is already a task running
    471             that starts with this activity, then instead of starting a new
    472             instance the current task is brought to the front.  The existing
    473             instance will receive a call to {@link android.app.Activity#onNewIntent
    474             Activity.onNewIntent()}
    475             with the new Intent that is being started, and with the
    476             {@link android.content.Intent#FLAG_ACTIVITY_BROUGHT_TO_FRONT
    477             Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT} flag set.  This is a superset
    478             of the singleTop mode, where if there is already an instance
    479             of the activity being started at the top of the stack, it will
    480             receive the Intent as described there (without the
    481             FLAG_ACTIVITY_BROUGHT_TO_FRONT flag set).  See the
    482             <a href="{@docRoot}guide/topics/fundamentals/tasks-and-back-stack.html">Tasks and Back
    483             Stack</a> document for more details about tasks.-->
    484         <enum name="singleTask" value="2" />
    485         <!-- Only allow one instance of this activity to ever be 
    486             running.  This activity gets a unique task with only itself running 
    487             in it; if it is ever launched again with the same Intent, then that 
    488             task will be brought forward and its 
    489             {@link android.app.Activity#onNewIntent Activity.onNewIntent()}
    490             method called.  If this 
    491             activity tries to start a new activity, that new activity will be 
    492             launched in a separate task.  See the
    493             <a href="{@docRoot}guide/topics/fundamentals/tasks-and-back-stack.html">Tasks and Back
    494             Stack</a> document for more details about tasks.-->
    495         <enum name="singleInstance" value="3" />
    496     </attr>
    497     
    498     <!-- Specify the orientation an activity should be run in.  If not
    499          specified, it will run in the current preferred orientation
    500          of the screen. -->
    501     <attr name="screenOrientation">
    502         <!-- No preference specified: let the system decide the best
    503              orientation.  This will either be the orientation selected
    504              by the activity below, or the user's preferred orientation
    505              if this activity is the bottom of a task. If the user
    506              explicitly turned off sensor based orientation through settings
    507              sensor based device rotation will be ignored. If not by default
    508              sensor based orientation will be taken into account and the 
    509              orientation will changed based on how the user rotates the device -->
    510         <enum name="unspecified" value="-1" />
    511         <!-- Would like to have the screen in a landscape orientation: that
    512              is, with the display wider than it is tall, ignoring sensor data. -->
    513         <enum name="landscape" value="0" />
    514         <!-- Would like to have the screen in a portrait orientation: that
    515              is, with the display taller than it is wide, ignoring sensor data. -->
    516         <enum name="portrait" value="1" />
    517         <!-- Use the user's current preferred orientation of the handset. -->
    518         <enum name="user" value="2" />
    519         <!-- Keep the screen in the same orientation as whatever is behind
    520              this activity. -->
    521         <enum name="behind" value="3" />
    522         <!-- Orientation is determined by a physical orientation sensor:
    523              the display will rotate based on how the user moves the device. -->
    524         <enum name="sensor" value="4" />
    525         <!-- Always ignore orientation determined by orientation sensor:
    526              the display will not rotate when the user moves the device. -->
    527         <enum name="nosensor" value="5" />
    528         <!-- Would like to have the screen in landscape orientation, but can
    529              use the sensor to change which direction the screen is facing. -->
    530         <enum name="sensorLandscape" value="6" />
    531         <!-- Would like to have the screen in portrait orientation, but can
    532              use the sensor to change which direction the screen is facing. -->
    533         <enum name="sensorPortait" value="7" />
    534         <!-- Would like to have the screen in landscape orientation, turned in
    535              the opposite direction from normal landscape. -->
    536         <enum name="reverseLandscape" value="8" />
    537         <!-- Would like to have the screen in portrait orientation, turned in
    538              the opposite direction from normal portrait. -->
    539         <enum name="reversePortait" value="9" />
    540         <!-- Orientation is determined by a physical orientation sensor:
    541              the display will rotate based on how the user moves the device.
    542              This allows any of the 4 possible rotations, regardless of what
    543              the device will normally do (for example some devices won't
    544              normally use 180 degree rotation). -->
    545         <enum name="fullSensor" value="10" />
    546     </attr>
    547     
    548     <!-- Specify one or more configuration changes that the activity will
    549          handle itself.  If not specified, the activity will be restarted
    550          if any of these configuration changes happen in the system.  Otherwise,
    551          the activity will remain running and its
    552          {@link android.app.Activity#onConfigurationChanged Activity.onConfigurationChanged}
    553          method called with the new configuration.
    554          
    555          <p>Note that all of these configuration changes can impact the
    556          resource values seen by the application, so you will generally need
    557          to re-retrieve all resources (including view layouts, drawables, etc)
    558          to correctly handle any configuration change.
    559          
    560          <p>These values must be kept in sync with those in
    561          {@link android.content.pm.ActivityInfo} and
    562          include/utils/ResourceTypes.h. -->
    563     <attr name="configChanges">
    564         <!-- The IMSI MCC has changed, that is a SIM has been detected and
    565              updated the Mobile Country Code. -->
    566         <flag name="mcc" value="0x0001" />
    567         <!-- The IMSI MNC has changed, that is a SIM has been detected and
    568              updated the Mobile Network Code. -->
    569         <flag name="mnc" value="0x0002" />
    570         <!-- The locale has changed, that is the user has selected a new
    571              language that text should be displayed in. -->
    572         <flag name="locale" value="0x0004" />
    573         <!-- The touchscreen has changed.  Should never normally happen. -->
    574         <flag name="touchscreen" value="0x0008" />
    575         <!-- The keyboard type has changed, for example the user has plugged
    576              in an external keyboard. -->
    577         <flag name="keyboard" value="0x0010" />
    578         <!-- The keyboard or navigation accessibility has changed, for example
    579              the user has slid the keyboard out to expose it.  Note that
    580              despite its name, this applied to any accessibility: keyboard
    581              or navigation. -->
    582         <flag name="keyboardHidden" value="0x0020" />
    583         <!-- The navigation type has changed.  Should never normally happen. -->
    584         <flag name="navigation" value="0x0040" />
    585         <!-- The screen orientation has changed, that is the user has
    586              rotated the device. -->
    587         <flag name="orientation" value="0x0080" />
    588         <!-- The screen layout has changed.  This might be caused by a
    589              different display being activated. -->
    590         <flag name="screenLayout" value="0x0100" />
    591         <!-- The global user interface mode has changed.  For example,
    592              going in or out of car mode, night mode changing, etc. -->
    593         <flag name="uiMode" value="0x0200" />
    594         <!-- The current available screen size has changed.  If applications don't
    595              target at least {@link android.os.Build.VERSION_CODES#HONEYCOMB_MR2}
    596              then the activity will always handle this itself (the change
    597              will not result in a restart).  This represents a change in the
    598              currently available size, so will change when the user switches
    599              between landscape and portrait. -->
    600         <flag name="screenSize" value="0x0400" />
    601         <!-- The physical screen size has changed.  If applications don't
    602              target at least {@link android.os.Build.VERSION_CODES#HONEYCOMB_MR2}
    603              then the activity will always handle this itself (the change
    604              will not result in a restart).  This represents a change in size
    605              regardless of orientation, so will only change when the actual
    606              physical screen size has changed such as switching to an external
    607              display. -->
    608         <flag name="smallestScreenSize" value="0x0800" />
    609         <!-- The font scaling factor has changed, that is the user has
    610              selected a new global font size. -->
    611         <flag name="fontScale" value="0x40000000" />
    612     </attr>
    613     
    614     <!-- Descriptive text for the associated data. -->
    615     <attr name="description" format="reference" />
    616     
    617     <!-- The name of the application package that an Instrumentation object
    618          will run against. -->
    619     <attr name="targetPackage" format="string" />
    620     
    621     <!-- Flag indicating that an Instrumentation class wants to take care
    622          of starting/stopping profiling itself, rather than relying on
    623          the default behavior of profiling the complete time it is running.
    624          This allows it to target profiling data at a specific set of
    625          operations. -->
    626     <attr name="handleProfiling" format="boolean" />
    627     
    628     <!-- Flag indicating that an Instrumentation class should be run as a
    629          functional test. -->
    630     <attr name="functionalTest" format="boolean" />
    631 
    632     <!-- The touch screen type used by an application. -->
    633     <attr name="reqTouchScreen">
    634         <enum name="undefined" value="0" />
    635         <enum name="notouch" value="1" />
    636         <enum name="stylus" value="2" />
    637         <enum name="finger" value="3" />
    638     </attr>
    639 
    640     <!-- The input method preferred by an application. -->
    641     <attr name="reqKeyboardType">
    642         <enum name="undefined" value="0" />
    643         <enum name="nokeys" value="1" />
    644         <enum name="qwerty" value="2" />
    645         <enum name="twelvekey" value="3" />
    646     </attr>
    647 
    648     <!-- Application's requirement for a hard keyboard -->
    649     <attr name="reqHardKeyboard" format="boolean" />
    650 
    651     <!-- The navigation device preferred by an application. -->
    652     <attr name="reqNavigation">
    653         <enum name="undefined" value="0" />
    654         <enum name="nonav" value="1" />
    655         <enum name="dpad" value="2" />
    656         <enum name="trackball" value="3" />
    657         <enum name="wheel" value="4" />
    658     </attr>
    659 
    660     <!-- Application's requirement for five way navigation -->
    661     <attr name="reqFiveWayNav" format="boolean" />
    662 
    663     <!-- The name of the class subclassing <code>BackupAgent</code> to manage
    664          backup and restore of the application's data on external storage. -->
    665     <attr name="backupAgent" format="string" />
    666 
    667     <!-- Whether to allow the application to participate in backup
    668          infrastructure.  If this attribute is set to <code>false</code>, no backup
    669          of the application will ever be performed, even by a full-system backup that
    670          would otherwise cause all application data to be saved via adb.  The
    671          default value of this attribute is <code>true</code>. -->
    672     <attr name="allowBackup" format="boolean" />
    673 
    674     <!-- Whether the application in question should be terminated after its
    675          settings have been restored during a full-system restore operation.
    676          Single-package restore operations will never cause the application to
    677          be shut down.  Full-system restore operations typically only occur once,
    678          when the phone is first set up.  Third-party applications will not usually
    679          need to use this attribute.
    680 
    681          <p>The default is <code>true</code>, which means that after the application
    682          has finished processing its data during a full-system restore, it will be
    683          terminated. -->
    684     <attr name="killAfterRestore" format="boolean" />
    685 
    686     <!-- @deprecated This attribute is not used by the Android operating system. -->
    687     <attr name="restoreNeedsApplication" format="boolean" />
    688 
    689     <!-- Indicate that the application is prepared to attempt a restore of any
    690          backed-up dataset, even if the backup is apparently from a newer version
    691          of the application than is currently installed on the device.  Setting
    692          this attribute to <code>true</code> will permit the Backup Manager to
    693          attempt restore even when a version mismatch suggests that the data are
    694          incompatible.  <em>Use with caution!</em>
    695 
    696          <p>The default value of this attribute is <code>false</code>. -->
    697     <attr name="restoreAnyVersion" format="boolean" />
    698 
    699     <!-- The default install location defined by an application. -->
    700     <attr name="installLocation">
    701         <!-- Let the system decide ideal install location -->
    702         <enum name="auto" value="0" />
    703         <!-- Explicitly request to be installed on internal phone storage
    704              only. -->
    705         <enum name="internalOnly" value="1" />
    706         <!-- Prefer to be installed on SD card. There is no guarantee that
    707              the system will honor this request. The application might end
    708              up being installed on internal storage if external media
    709              is unavailable or too full. -->
    710         <enum name="preferExternal" value="2" />
    711     </attr>
    712 
    713     <!-- Extra options for an activity's UI. Applies to either the {@code &lt;activity&gt;} or
    714          {@code &lt;application&gt;} tag. If specified on the {@code &lt;application&gt;}
    715          tag these will be considered defaults for all activities in the
    716          application. -->
    717     <attr name="uiOptions">
    718         <!-- No extra UI options. This is the default. -->
    719         <flag name="none" value="0" />
    720         <!-- Split the options menu into a separate bar at the bottom of
    721              the screen when severely constrained for horizontal space.
    722              (e.g. portrait mode on a phone.) Instead of a small number
    723              of action buttons appearing in the action bar at the top
    724              of the screen, the action bar will split into the top navigation
    725              section and the bottom menu section. Menu items will not be
    726              split across the two bars; they will always appear together. -->
    727         <flag name="splitActionBarWhenNarrow" value="1" />
    728     </attr>
    729 
    730     <!-- The <code>manifest</code> tag is the root of an
    731          <code>AndroidManifest.xml</code> file,
    732          describing the contents of an Android package (.apk) file.  One
    733          attribute must always be supplied: <code>package</code> gives a
    734          unique name for the package, using a Java-style naming convention
    735          to avoid name collisions.  For example, applications published
    736          by Google could have names of the form
    737          <code>com.google.app.<em>appname</em></code>
    738          
    739          <p>Inside of the manifest tag, may appear the following tags
    740          in any order: {@link #AndroidManifestPermission permission},
    741          {@link #AndroidManifestPermissionGroup permission-group},
    742          {@link #AndroidManifestPermissionTree permission-tree},
    743          {@link #AndroidManifestUsesSdk uses-sdk},
    744          {@link #AndroidManifestUsesPermission uses-permission},
    745          {@link #AndroidManifestUsesConfiguration uses-configuration},
    746          {@link #AndroidManifestApplication application},
    747          {@link #AndroidManifestInstrumentation instrumentation},
    748          {@link #AndroidManifestUsesFeature uses-feature}.  -->
    749     <declare-styleable name="AndroidManifest">
    750         <attr name="versionCode" />
    751         <attr name="versionName" />
    752         <attr name="sharedUserId" />
    753         <attr name="sharedUserLabel" />
    754         <attr name="installLocation" />
    755     </declare-styleable>
    756     
    757     <!-- The <code>application</code> tag describes application-level components
    758          contained in the package, as well as general application
    759          attributes.  Many of the attributes you can supply here (such
    760          as theme, label, icon, permission, process, taskAffinity,
    761          and allowTaskReparenting) serve
    762          as default values for the corresponding attributes of components
    763          declared inside of the application.
    764          
    765          <p>Inside of this element you specify what the application contains,
    766          using the elements {@link #AndroidManifestProvider provider},
    767          {@link #AndroidManifestService service},
    768          {@link #AndroidManifestReceiver receiver},
    769          {@link #AndroidManifestActivity activity},
    770          {@link #AndroidManifestActivityAlias activity-alias}, and
    771          {@link #AndroidManifestUsesLibrary uses-library}.  The application tag
    772          appears as a child of the root {@link #AndroidManifest manifest} tag. -->
    773     <declare-styleable name="AndroidManifestApplication" parent="AndroidManifest">
    774         <!-- An optional name of a class implementing the overall
    775              {@link android.app.Application} for this package.  When the
    776              process for your package is started, this class is instantiated
    777              before any of the other application components.  Note that this
    778              is not required, and in fact most applications will probably
    779              not need it. -->
    780         <attr name="name" />
    781         <attr name="theme" />
    782         <attr name="label" />
    783         <attr name="icon" />
    784         <attr name="logo" />
    785         <attr name="description" />
    786         <attr name="permission" />
    787         <attr name="process" />
    788         <attr name="taskAffinity" />
    789         <attr name="allowTaskReparenting" />
    790         <!-- Indicate whether this application contains code.  If set to false,
    791              there is no code associated with it and thus the system will not
    792              try to load its code when launching components.  The default is true
    793              for normal behavior. -->
    794         <attr name="hasCode" format="boolean" />
    795         <attr name="persistent" />
    796         <!-- Specify whether the components in this application are enabled or not (that is, can be
    797              instantiated by the system).
    798              If "false", it overrides any component specific values (a value of "true" will not
    799              override the component specific values). -->
    800         <attr name="enabled" />
    801         <attr name="debuggable" />
    802         <attr name="vmSafeMode" />
    803         <attr name="hardwareAccelerated" />
    804         <!-- Name of activity to be launched for managing the application's space on the device. -->
    805         <attr name="manageSpaceActivity" />
    806         <attr name="allowClearUserData" />
    807         <attr name="testOnly" />
    808         <attr name="backupAgent" />
    809         <attr name="allowBackup" />
    810         <attr name="killAfterRestore" />
    811         <attr name="restoreNeedsApplication" />
    812         <attr name="restoreAnyVersion" />
    813         <attr name="neverEncrypt" />
    814         <!-- Request that your application's processes be created with
    815              a large Dalvik heap.  This applies to <em>all</em> processes
    816              created for the application.  It only applies to the first
    817              application loaded into a process; if using a sharedUserId
    818              to allow multiple applications to use a process, they all must
    819              use this option consistently or will get unpredictable results. -->
    820         <attr name="largeHeap" format="boolean" />
    821         <!-- Declare that this application can't participate in the normal
    822              state save/restore mechanism.  Since it is not able to save and
    823              restore its state on demand,
    824              it can not participate in the normal activity lifecycle.  It will
    825              not be killed while in the background; the user must explicitly
    826              quit it.  Only one such app can be running at a time; if the user
    827              tries to launch a second such app, they will be prompted
    828              to quit the first before doing so.  While the
    829              application is running, the user will be informed of this.
    830              @hide -->
    831         <attr name="cantSaveState" format="boolean" />
    832         <attr name="uiOptions" />
    833     </declare-styleable>
    834     
    835     <!-- The <code>permission</code> tag declares a security permission that can be
    836          used to control access from other packages to specific components or
    837          features in your package (or other packages).  See the
    838          <a href="{@docRoot}guide/topics/security/security.html">Security and Permissions</a>
    839          document for more information on permissions.
    840          
    841          <p>This appears as a child tag of the root
    842          {@link #AndroidManifest manifest} tag. -->
    843     <declare-styleable name="AndroidManifestPermission" parent="AndroidManifest">
    844         <!-- Required public name of the permission, which other components and
    845         packages will use when referring to this permission.  This is a string using
    846         Java-style scoping to ensure it is unique.  The prefix will often
    847         be the same as our overall package name, for example
    848         "com.mycompany.android.myapp.SomePermission". -->
    849         <attr name="name" />
    850         <attr name="label" />
    851         <attr name="icon" />
    852         <attr name="logo" />
    853         <attr name="permissionGroup" />
    854         <attr name="description" />
    855         <attr name="protectionLevel" />
    856     </declare-styleable>
    857     
    858     <!-- The <code>permission-group</code> tag declares a logical grouping of
    859          related permissions.
    860          
    861          <p>Note that this tag does not declare a permission itself, only
    862          a namespace in which further permissions can be placed.  See
    863          the {@link #AndroidManifestPermission &lt;permission&gt;} tag for
    864          more information.
    865          
    866          <p>This appears as a child tag of the root
    867          {@link #AndroidManifest manifest} tag. -->
    868     <declare-styleable name="AndroidManifestPermissionGroup" parent="AndroidManifest">
    869         <!-- Required public name of the permission group, permissions will use
    870         to specify the group they are in.  This is a string using
    871         Java-style scoping to ensure it is unique.  The prefix will often
    872         be the same as our overall package name, for example
    873         "com.mycompany.android.myapp.SomePermission". -->
    874         <attr name="name" />
    875         <attr name="label" />
    876         <attr name="icon" />
    877         <attr name="logo" />
    878         <attr name="description" />
    879     </declare-styleable>
    880     
    881     <!-- The <code>permission-tree</code> tag declares the base of a tree of
    882          permission values: it declares that this package has ownership of
    883          the given permission name, as well as all names underneath it
    884          (separated by '.').  This allows you to use the
    885          {@link android.content.pm.PackageManager#addPermission
    886          PackageManager.addPermission()} method to dynamically add new
    887          permissions under this tree.
    888          
    889          <p>Note that this tag does not declare a permission itself, only
    890          a namespace in which further permissions can be placed.  See
    891          the {@link #AndroidManifestPermission &lt;permission&gt;} tag for
    892          more information.
    893          
    894          <p>This appears as a child tag of the root
    895          {@link #AndroidManifest manifest} tag. -->
    896     <declare-styleable name="AndroidManifestPermissionTree" parent="AndroidManifest">
    897         <!-- Required public name of the permission tree, which is the base name
    898         of all permissions under it.  This is a string using
    899         Java-style scoping to ensure it is unique.  The prefix will often
    900         be the same as our overall package name, for example
    901         "com.mycompany.android.myapp.SomePermission".  A permission tree name
    902         must have more than two segments in its path; that is,
    903         "com.me.foo" is okay, but not "com.me" or "com". -->
    904         <attr name="name" />
    905         <attr name="label" />
    906         <attr name="icon" />
    907         <attr name="logo" />
    908     </declare-styleable>
    909     
    910     <!-- The <code>uses-permission</code> tag requests a
    911          {@link #AndroidManifestPermission &lt;permission&gt;} that the containing
    912          package must be granted in order for it to operate correctly.
    913          See the <a href="{@docRoot}guide/topics/security/security.html">Security and Permissions</a>
    914          document for more information on permissions.  Also available is a
    915          {@link android.Manifest.permission list of permissions} included
    916          with the base platform.
    917          
    918          <p>This appears as a child tag of the root
    919          {@link #AndroidManifest manifest} tag. -->
    920     <declare-styleable name="AndroidManifestUsesPermission" parent="AndroidManifest">
    921         <!-- Required name of the permission you use, as published with the
    922         corresponding name attribute of a
    923         {@link android.R.styleable#AndroidManifestPermission &lt;permission&gt;}
    924         tag; often this is one of the {@link android.Manifest.permission standard
    925         system permissions}. -->
    926         <attr name="name" />
    927     </declare-styleable>
    928 
    929     <!-- The <code>uses-configuration</code> tag specifies
    930          a specific hardware configuration value used by the application.
    931          For example an application might specify that it requires
    932          a physical keyboard or a particular navigation method like
    933          trackball. Multiple such attribute values can be specified by the
    934          application.
    935 
    936          <p>This appears as a child tag of the root
    937          {@link #AndroidManifest manifest} tag. -->
    938     <declare-styleable name="AndroidManifestUsesConfiguration" parent="AndroidManifest">
    939         <!-- The type of touch screen used by an application. -->
    940         <attr name="reqTouchScreen" />
    941         <attr name="reqKeyboardType" />
    942         <attr name="reqHardKeyboard" />
    943         <attr name="reqNavigation" />
    944         <attr name="reqFiveWayNav" />
    945     </declare-styleable>
    946 
    947     <!-- The <code>uses-feature</code> tag specifies
    948          a specific feature used by the application.
    949          For example an application might specify that it requires
    950          specific version of OpenGL. Multiple such attribute
    951          values can be specified by the application.
    952 
    953          <p>This appears as a child tag of the root
    954          {@link #AndroidManifest manifest} tag. -->
    955     <declare-styleable name="AndroidManifestUsesFeature" parent="AndroidManifest">
    956         <!-- The GLES driver version number needed by an application.
    957              The higher 16 bits represent the major number and the lower 16 bits
    958              represent the minor number. For example for GL 1.2 referring to
    959              0x00000102, the actual value should be set as 0x00010002. -->
    960         <attr name="glEsVersion" format="integer"/>
    961         <!--  The name of the feature that is being used. -->
    962         <attr name="name" />
    963         <!--  Specify whether this feature is required for the application.
    964               The default is true, meaning the application requires the
    965               feature, and does not want to be installed on devices that
    966               don't support it.  If you set this to false, then this will
    967               not impose a restriction on where the application can be
    968               installed. -->
    969         <attr name="required" format="boolean" />
    970     </declare-styleable>
    971 
    972     <!-- The <code>uses-sdk</code> tag describes the SDK features that the
    973          containing package must be running on to operate correctly.
    974          
    975          <p>This appears as a child tag of the root
    976          {@link #AndroidManifest manifest} tag. -->
    977     <declare-styleable name="AndroidManifestUsesSdk" parent="AndroidManifest">
    978         <!-- This is the minimum SDK version number that the application
    979              requires.  This number is an abstract integer, from the list
    980              in {@link android.os.Build.VERSION_CODES}  If
    981              not supplied, the application will work on any SDK.  This
    982              may also be string (such as "Donut") if the application was built
    983              against a development branch, in which case it will only work against
    984              the development builds. -->
    985         <attr name="minSdkVersion" format="integer|string" />
    986         <!-- This is the SDK version number that the application is targeting.
    987              It is able to run on older versions (down to minSdkVersion), but
    988              was explicitly tested to work with the version specified here.
    989              Specifying this version allows the platform to disable compatibility
    990              code that are not required or enable newer features that are not
    991              available to older applications.  This may also be a string
    992              (such as "Donut") if this is built against a development
    993              branch, in which case minSdkVersion is also forced to be that
    994              string. -->
    995         <attr name="targetSdkVersion" format="integer|string" />
    996         <!-- This is the maximum SDK version number that an application works
    997              on.  You can use this to ensure your application is filtered out
    998              of later versions of the platform when you know you have
    999              incompatibility with them. -->
   1000         <attr name="maxSdkVersion" format="integer" />
   1001     </declare-styleable>
   1002     
   1003     <!-- The <code>uses-libraries</code> specifies a shared library that this
   1004          package requires to be linked against.  Specifying this flag tells the
   1005          system to include this library's code in your class loader.
   1006          
   1007          <p>This appears as a child tag of the
   1008          {@link #AndroidManifestApplication application} tag. -->
   1009     <declare-styleable name="AndroidManifestUsesLibrary" parent="AndroidManifestApplication">
   1010         <!-- Required name of the library you use. -->
   1011         <attr name="name" />
   1012         <!--  Specify whether this library is required for the application.
   1013               The default is true, meaning the application requires the
   1014               library, and does not want to be installed on devices that
   1015               don't support it.  If you set this to false, then this will
   1016               allow the application to be installed even if the library
   1017               doesn't exist, and you will need to check for its presence
   1018               dynamically at runtime. -->
   1019         <attr name="required" />
   1020     </declare-styleable>
   1021     
   1022     <!-- The <code>supports-screens</code> specifies the screen dimensions an
   1023          application supports.  By default a modern application supports all
   1024          screen sizes and must explicitly disable certain screen sizes here;
   1025          older applications are assumed to only support the traditional normal
   1026          (HVGA) screen size.  Note that screen size is a separate axis from
   1027          density, and is determined as the available pixels to an application
   1028          after density scaling has been applied.
   1029          
   1030          <p>This appears as a child tag of the
   1031          {@link #AndroidManifest manifest} tag. -->
   1032     <declare-styleable name="AndroidManifestSupportsScreens" parent="AndroidManifest">
   1033         <!-- Starting with {@link android.os.Build.VERSION_CODES#HONEYCOMB_MR2},
   1034              this is the new way to specify the minimum screen size an application is
   1035              compatible with.  This attribute provides the required minimum
   1036              "smallest screen width" (as per the -swNNNdp resource configuration)
   1037              that the application can run on.  For example, a typical phone
   1038              screen is 320, a 7" tablet 600, and a 10" tablet 720.  If the
   1039              smallest screen width of the device is below the value supplied here,
   1040              then the application is considered incompatible with that device.
   1041              If not supplied, then any old smallScreens, normalScreens, largeScreens,
   1042              or xlargeScreens attributes will be used instead. -->
   1043         <attr name="requiresSmallestWidthDp" format="integer" />
   1044         <!-- Starting with {@link android.os.Build.VERSION_CODES#HONEYCOMB_MR2},
   1045              this is the new way to specify the largest screens an application is
   1046              compatible with.  This attribute provides the maximum
   1047              "smallest screen width" (as per the -swNNNdp resource configuration)
   1048              that the application is designed for.  If this value is smaller than
   1049              the "smallest screen width" of the device it is running on, the user
   1050              is offered to run it in a compatibility mode that emulates a
   1051              smaller screen and zooms it to fit the screen. Currently the compatibility mode only
   1052              emulates phone screens with a 320dp width, so compatibility mode is not applied if the
   1053              value for compatibleWidthLimitDp is larger than 320. -->
   1054         <attr name="compatibleWidthLimitDp" format="integer" />
   1055         <!-- Starting with {@link android.os.Build.VERSION_CODES#HONEYCOMB_MR2},
   1056              this is the new way to specify the screens an application is
   1057              compatible with.  This attribute provides the maximum
   1058              "smallest screen width" (as per the -swNNNdp resource configuration)
   1059              that the application can work well on.  If this value is smaller than
   1060              the "smallest screen width" of the device it is running on, the
   1061              application will be forced in to screen compatibility mode with
   1062              no way for the user to turn it off. Currently the compatibility mode only
   1063              emulates phone screens with a 320dp width, so compatibility mode is not applied if the
   1064              value for largestWidthLimitDp is larger than 320. -->
   1065         <attr name="largestWidthLimitDp" format="integer" />
   1066         <!-- Indicates whether the application supports smaller screen form-factors.
   1067              A small screen is defined as one with a smaller aspect ratio than
   1068              the traditional HVGA screen; that is, for a portrait screen, less
   1069              tall than an HVGA screen.  In practice, this means a QVGA low
   1070              density or VGA high density screen.  An application that does
   1071              not support small screens <em>will not be available</em> for
   1072              small screen devices, since there is little the platform can do
   1073              to make such an application work on a smaller screen. -->
   1074         <attr name="smallScreens" format="boolean" />
   1075         <!-- Indicates whether an application supports the normal screen
   1076              form-factors.  Traditionally this is an HVGA normal density
   1077              screen, but WQVGA low density and WVGA high density are also
   1078              considered to be normal.  This attribute is true by default,
   1079              and applications currently should leave it that way. -->
   1080         <attr name="normalScreens" format="boolean" />
   1081         <!-- Indicates whether the application supports larger screen form-factors.
   1082              A large screen is defined as a screen that is significantly larger
   1083              than a normal phone screen, and thus may require some special care
   1084              on the application's part to make good use of it.  An example would
   1085              be a VGA <em>normal density</em> screen, though even larger screens
   1086              are certainly possible.  An application that does not support
   1087              large screens will be placed as a postage stamp on such a
   1088              screen, so that it retains the dimensions it was originally
   1089              designed for. -->
   1090         <attr name="largeScreens" format="boolean" />
   1091         <!-- Indicates whether the application supports extra large screen form-factors. -->
   1092         <attr name="xlargeScreens" format="boolean" />
   1093         <!-- Indicates whether the application can resize itself to newer
   1094              screen sizes.  This is mostly used to distinguish between old
   1095              applications that may not be compatible with newly introduced
   1096              screen sizes and newer applications that should be; it will be
   1097              set for you automatically based on whether you are targeting
   1098              a newer platform that supports more screens. -->
   1099         <attr name="resizeable" format="boolean" />
   1100         <!-- Indicates whether the application can accommodate any screen
   1101              density.  Older applications are assumed to not be able to,
   1102              new ones able to.  You can explicitly supply your abilities
   1103              here. -->
   1104         <attr name="anyDensity" format="boolean" />
   1105     </declare-styleable>
   1106 
   1107     <!-- Private tag to declare system protected broadcast actions.
   1108 
   1109          <p>This appears as a child tag of the root
   1110          {@link #AndroidManifest manifest} tag. -->
   1111     <declare-styleable name="AndroidManifestProtectedBroadcast" parent="AndroidManifest">
   1112         <attr name="name" />
   1113     </declare-styleable>
   1114 
   1115     <!-- Private tag to declare the original package name that this package is
   1116          based on.  Only used for packages installed in the system image.  If
   1117          given, and different than the actual package name, and the given
   1118          original package was previously installed on the device but the new
   1119          one was not, then the data for the old one will be renamed to be
   1120          for the new package.
   1121 
   1122          <p>This appears as a child tag of the root
   1123          {@link #AndroidManifest manifest} tag. -->
   1124     <declare-styleable name="AndroidManifestOriginalPackage" parent="AndroidManifest">
   1125         <attr name="name" />
   1126     </declare-styleable>
   1127 
   1128     <!-- The <code>provider</code> tag declares a
   1129          {@link android.content.ContentProvider} class that is available
   1130          as part of the package's application components, supplying structured
   1131          access to data managed by the application.
   1132          
   1133          <p>This appears as a child tag of the
   1134          {@link #AndroidManifestApplication application} tag. -->
   1135     <declare-styleable name="AndroidManifestProvider" parent="AndroidManifestApplication">
   1136         <!-- Required name of the class implementing the provider, deriving from
   1137             {@link android.content.ContentProvider}.  This is a fully
   1138             qualified class name (for example, com.mycompany.myapp.MyProvider); as a
   1139             short-hand if the first character of the class
   1140             is a period then it is appended to your package name. -->
   1141         <attr name="name" />
   1142         <attr name="label" />
   1143         <attr name="description" />
   1144         <attr name="icon" />
   1145         <attr name="logo" />
   1146         <attr name="process" />
   1147         <attr name="authorities" />
   1148         <attr name="syncable" />
   1149         <attr name="readPermission" />
   1150         <attr name="writePermission" />
   1151         <attr name="grantUriPermissions" />
   1152         <attr name="permission" />
   1153         <attr name="multiprocess" />
   1154         <attr name="initOrder" />
   1155         <!-- Specify whether this provider is enabled or not (that is, can be instantiated by the system).
   1156              It can also be specified for an application as a whole, in which case a value of "false"
   1157              will override any component specific values (a value of "true" will not override the
   1158              component specific values). -->
   1159         <attr name="enabled" />
   1160         <attr name="exported" />
   1161     </declare-styleable>
   1162     
   1163     <!-- Attributes that can be supplied in an AndroidManifest.xml
   1164          <code>grant-uri-permission</code> tag, a child of the
   1165          {@link #AndroidManifestProvider provider} tag, describing a specific
   1166          URI path that can be granted as a permission.  This tag can be
   1167          specified multiple time to supply multiple paths. -->
   1168     <declare-styleable name="AndroidManifestGrantUriPermission"  parent="AndroidManifestProvider">
   1169         <!-- Specify a URI path that must exactly match, as per
   1170              {@link android.os.PatternMatcher} with
   1171              {@link android.os.PatternMatcher#PATTERN_LITERAL}. -->
   1172         <attr name="path" format="string" />
   1173         <!-- Specify a URI path that must be a prefix to match, as per
   1174              {@link android.os.PatternMatcher} with
   1175              {@link android.os.PatternMatcher#PATTERN_PREFIX}. -->
   1176         <attr name="pathPrefix" format="string" />
   1177         <!-- Specify a URI path that matches a simple pattern, as per
   1178              {@link android.os.PatternMatcher} with
   1179              {@link android.os.PatternMatcher#PATTERN_SIMPLE_GLOB}. 
   1180              Note that because '\' is used as an escape character when
   1181              reading the string from XML (before it is parsed as a pattern),
   1182              you will need to double-escape: for example a literal "*" would
   1183              be written as "\\*" and a literal "\" would be written as
   1184              "\\\\".  This is basically the same as what you would need to
   1185              write if constructing the string in Java code. -->
   1186         <attr name="pathPattern" format="string" />
   1187     </declare-styleable>
   1188     
   1189     <!-- Attributes that can be supplied in an AndroidManifest.xml
   1190          <code>path-permission</code> tag, a child of the
   1191          {@link #AndroidManifestProvider provider} tag, describing a permission
   1192          that allows access to a specific path in the provider.  This tag can be
   1193          specified multiple time to supply multiple paths. -->
   1194     <declare-styleable name="AndroidManifestPathPermission"  parent="AndroidManifestProvider">
   1195         <attr name="path" />
   1196         <attr name="pathPrefix" />
   1197         <attr name="pathPattern" />
   1198         <attr name="permission" />
   1199         <attr name="readPermission" />
   1200         <attr name="writePermission" />
   1201     </declare-styleable>
   1202     
   1203     <!-- The <code>service</code> tag declares a
   1204          {@link android.app.Service} class that is available
   1205          as part of the package's application components, implementing
   1206          long-running background operations or a rich communication API
   1207          that can be called by other packages.
   1208          
   1209          <p>Zero or more {@link #AndroidManifestIntentFilter intent-filter}
   1210          tags can be included inside of a service, to specify the Intents
   1211          that can connect with it.  If none are specified, the service can
   1212          only be accessed by direct specification of its class name.
   1213          The service tag appears as a child tag of the
   1214          {@link #AndroidManifestApplication application} tag. -->
   1215     <declare-styleable name="AndroidManifestService" parent="AndroidManifestApplication">
   1216         <!-- Required name of the class implementing the service, deriving from
   1217             {@link android.app.Service}.  This is a fully
   1218             qualified class name (for example, com.mycompany.myapp.MyService); as a
   1219             short-hand if the first character of the class
   1220             is a period then it is appended to your package name. -->
   1221         <attr name="name" />
   1222         <attr name="label" />
   1223         <attr name="description" />
   1224         <attr name="icon" />
   1225         <attr name="logo" />
   1226         <attr name="permission" />
   1227         <attr name="process" />
   1228         <!-- Specify whether the service is enabled or not (that is, can be instantiated by the system).
   1229              It can also be specified for an application as a whole, in which case a value of "false"
   1230              will override any component specific values (a value of "true" will not override the
   1231              component specific values). -->
   1232         <attr name="enabled" />
   1233         <attr name="exported" />
   1234         <!-- If set to true, this service with be automatically stopped
   1235              when the user remove a task rooted in an activity owned by
   1236              the application.  The default is false. -->
   1237         <attr name="stopWithTask" format="boolean" />
   1238     </declare-styleable>
   1239     
   1240     <!-- The <code>receiver</code> tag declares an
   1241          {@link android.content.BroadcastReceiver} class that is available
   1242          as part of the package's application components, allowing the
   1243          application to receive actions or data broadcast by other
   1244          applications even if it is not currently running.
   1245          
   1246          <p>Zero or more {@link #AndroidManifestIntentFilter intent-filter}
   1247          tags can be included inside of a receiver, to specify the Intents
   1248          it will receive.  If none are specified, the receiver will only
   1249          be run when an Intent is broadcast that is directed at its specific
   1250          class name.  The receiver tag appears as a child tag of the
   1251          {@link #AndroidManifestApplication application} tag. -->
   1252     <declare-styleable name="AndroidManifestReceiver" parent="AndroidManifestApplication">
   1253         <!-- Required name of the class implementing the receiver, deriving from
   1254             {@link android.content.BroadcastReceiver}.  This is a fully
   1255             qualified class name (for example, com.mycompany.myapp.MyReceiver); as a
   1256             short-hand if the first character of the class
   1257             is a period then it is appended to your package name. -->
   1258         <attr name="name" />
   1259         <attr name="label" />
   1260         <attr name="description" />
   1261         <attr name="icon" />
   1262         <attr name="logo" />
   1263         <attr name="permission" />
   1264         <attr name="process" />
   1265         <!-- Specify whether the receiver is enabled or not (that is, can be instantiated by the system).
   1266              It can also be specified for an application as a whole, in which case a value of "false"
   1267              will override any component specific values (a value of "true" will not override the
   1268              component specific values). -->
   1269         <attr name="enabled" />
   1270         <attr name="exported" />
   1271     </declare-styleable>
   1272     
   1273     <!-- The <code>activity</code> tag declares an
   1274          {@link android.app.Activity} class that is available
   1275          as part of the package's application components, implementing
   1276          a part of the application's user interface.
   1277          
   1278          <p>Zero or more {@link #AndroidManifestIntentFilter intent-filter}
   1279          tags can be included inside of an activity, to specify the Intents
   1280          that it can handle.  If none are specified, the activity can
   1281          only be started through direct specification of its class name.
   1282          The activity tag appears as a child tag of the
   1283          {@link #AndroidManifestApplication application} tag. -->
   1284     <declare-styleable name="AndroidManifestActivity" parent="AndroidManifestApplication">
   1285         <!-- Required name of the class implementing the activity, deriving from
   1286             {@link android.app.Activity}.  This is a fully
   1287             qualified class name (for example, com.mycompany.myapp.MyActivity); as a
   1288             short-hand if the first character of the class
   1289             is a period then it is appended to your package name. -->
   1290         <attr name="name" />
   1291         <attr name="theme" />
   1292         <attr name="label" />
   1293         <attr name="description" />
   1294         <attr name="icon" />
   1295         <attr name="logo" />
   1296         <attr name="launchMode" />
   1297         <attr name="screenOrientation" />
   1298         <attr name="configChanges" />
   1299         <attr name="permission" />
   1300         <attr name="multiprocess" />
   1301         <attr name="process" />
   1302         <attr name="taskAffinity" />
   1303         <attr name="allowTaskReparenting" />
   1304         <attr name="finishOnTaskLaunch" />
   1305         <attr name="finishOnCloseSystemDialogs" />
   1306         <attr name="clearTaskOnLaunch" />
   1307         <attr name="noHistory" />
   1308         <attr name="alwaysRetainTaskState" />
   1309         <attr name="stateNotNeeded" />
   1310         <attr name="excludeFromRecents" />
   1311         <!-- Specify whether the activity is enabled or not (that is, can be instantiated by the system).
   1312              It can also be specified for an application as a whole, in which case a value of "false"
   1313              will override any component specific values (a value of "true" will not override the
   1314              component specific values). -->
   1315         <attr name="enabled" />
   1316         <attr name="exported" />
   1317         <!-- Specify the default soft-input mode for the main window of
   1318              this activity.  A value besides "unspecified" here overrides
   1319              any value in the theme. -->
   1320         <attr name="windowSoftInputMode" />
   1321         <attr name="immersive" />
   1322         <attr name="hardwareAccelerated" />
   1323         <attr name="uiOptions" />
   1324     </declare-styleable>
   1325     
   1326     <!-- The <code>activity-alias</code> tag declares a new
   1327          name for an existing {@link #AndroidManifestActivity activity}
   1328          tag.
   1329          
   1330          <p>Zero or more {@link #AndroidManifestIntentFilter intent-filter}
   1331          tags can be included inside of an activity-alias, to specify the Intents
   1332          that it can handle.  If none are specified, the activity can
   1333          only be started through direct specification of its class name.
   1334          The activity-alias tag appears as a child tag of the
   1335          {@link #AndroidManifestApplication application} tag. -->
   1336     <declare-styleable name="AndroidManifestActivityAlias" parent="AndroidManifestApplication">
   1337         <!-- Required name of the class implementing the activity, deriving from
   1338             {@link android.app.Activity}.  This is a fully
   1339             qualified class name (for example, com.mycompany.myapp.MyActivity); as a
   1340             short-hand if the first character of the class
   1341             is a period then it is appended to your package name. -->
   1342         <attr name="name" />
   1343         <!-- The name of the activity this alias should launch.  The activity
   1344              must be in the same manifest as the alias, and have been defined
   1345              in that manifest before the alias here.  This must use a Java-style
   1346              naming convention to ensure the name is unique, for example
   1347              "com.mycompany.MyName". -->  
   1348         <attr name="targetActivity" format="string" />
   1349         <attr name="label" />
   1350         <attr name="description" />
   1351         <attr name="icon" />
   1352         <attr name="logo" />
   1353         <attr name="permission" />
   1354         <!-- Specify whether the activity-alias is enabled or not (that is, can be instantiated by the system).
   1355              It can also be specified for an application as a whole, in which case a value of "false"
   1356              will override any component specific values (a value of "true" will not override the
   1357              component specific values). -->
   1358         <attr name="enabled" />
   1359         <attr name="exported" />
   1360     </declare-styleable>
   1361     
   1362     <!-- The <code>meta-data</code> tag is used to attach additional
   1363          arbitrary data to an application component.  The data can later
   1364          be retrieved programmatically from the
   1365          {@link android.content.pm.ComponentInfo#metaData
   1366          ComponentInfo.metaData} field.  There is no meaning given to this
   1367          data by the system.  You may supply the data through either the
   1368          <code>value</code> or <code>resource</code> attribute; if both
   1369          are given, then <code>resource</code> will be used.
   1370          
   1371          <p>It is highly recommended that you avoid supplying related data as
   1372          multiple separate meta-data entries.  Instead, if you have complex
   1373          data to associate with a component, then use the <code>resource</code>
   1374          attribute to assign an XML resource that the client can parse to
   1375          retrieve the complete data. -->
   1376     <declare-styleable name="AndroidManifestMetaData"
   1377          parent="AndroidManifestApplication
   1378                  AndroidManifestActivity
   1379                  AndroidManifestReceiver
   1380                  AndroidManifestProvider
   1381                  AndroidManifestService
   1382                  AndroidManifestPermission
   1383                  AndroidManifestPermissionGroup
   1384                  AndroidManifestInstrumentation">
   1385         <attr name="name" />
   1386         <!-- Concrete value to assign to this piece of named meta-data.
   1387              The data can later be retrieved from the meta data Bundle
   1388              through {@link android.os.Bundle#getString Bundle.getString},
   1389              {@link android.os.Bundle#getInt Bundle.getInt},
   1390              {@link android.os.Bundle#getBoolean Bundle.getBoolean},
   1391              or {@link android.os.Bundle#getFloat Bundle.getFloat} depending
   1392              on the type used here. -->
   1393         <attr name="value" format="string|integer|color|float|boolean" />
   1394         <!-- Resource identifier to assign to this piece of named meta-data.
   1395              The resource identifier can later be retrieved from the meta data
   1396              Bundle through {@link android.os.Bundle#getInt Bundle.getInt}. -->
   1397         <attr name="resource" format="reference" />
   1398     </declare-styleable>
   1399     
   1400     <!-- The <code>intent-filter</code> tag is used to construct an
   1401          {@link android.content.IntentFilter} object that will be used
   1402          to determine which component can handle a particular
   1403          {@link android.content.Intent} that has been given to the system.
   1404          It can be used as a child of the
   1405          {@link #AndroidManifestActivity activity},
   1406          {@link #AndroidManifestReceiver receiver} and 
   1407          {@link #AndroidManifestService service}
   1408          tags.
   1409          
   1410          <p> Zero or more {@link #AndroidManifestAction action},
   1411          {@link #AndroidManifestCategory category}, and/or
   1412          {@link #AndroidManifestData data} tags should be
   1413          included inside to describe the contents of the filter.
   1414          
   1415          <p> The optional label and icon attributes here are used with
   1416          an activity to supply an alternative description of that activity
   1417          when it is being started through an Intent matching this filter. -->
   1418     <declare-styleable name="AndroidManifestIntentFilter"
   1419          parent="AndroidManifestActivity AndroidManifestReceiver AndroidManifestService">
   1420         <attr name="label" />
   1421         <attr name="icon" />
   1422         <attr name="logo" />
   1423         <attr name="priority" />
   1424     </declare-styleable>
   1425     
   1426     <!-- Attributes that can be supplied in an AndroidManifest.xml
   1427          <code>action</code> tag, a child of the
   1428          {@link #AndroidManifestIntentFilter intent-filter} tag.
   1429          See {@link android.content.IntentFilter#addAction} for
   1430          more information. -->
   1431     <declare-styleable name="AndroidManifestAction" parent="AndroidManifestIntentFilter">
   1432         <!-- The name of an action that is handled, using the Java-style
   1433              naming convention.  For example, to support
   1434              {@link android.content.Intent#ACTION_VIEW Intent.ACTION_VIEW}
   1435              you would put <code>android.intent.action.VIEW</code> here.
   1436              Custom actions should generally use a prefix matching the
   1437              package name. -->
   1438         <attr name="name" />
   1439     </declare-styleable>
   1440     
   1441     <!-- Attributes that can be supplied in an AndroidManifest.xml
   1442          <code>data</code> tag, a child of the
   1443          {@link #AndroidManifestIntentFilter intent-filter} tag, describing
   1444          the types of data that match.  This tag can be specified multiple
   1445          times to supply multiple data options, as described in the
   1446          {@link android.content.IntentFilter} class.  Note that all such
   1447          tags are adding options to the same IntentFilter so that, for example,
   1448          <code>&lt;data android:scheme="myscheme" android:host="me.com" /&gt;</code>
   1449          is equivalent to <code>&lt;data android:scheme="myscheme" /&gt;
   1450          &lt;data android:host="me.com" /&gt;</code>. -->
   1451     <declare-styleable name="AndroidManifestData" parent="AndroidManifestIntentFilter">
   1452         <!-- Specify a MIME type that is handled, as per
   1453              {@link android.content.IntentFilter#addDataType
   1454              IntentFilter.addDataType()}.
   1455              <p><em>Note: MIME type matching in the Android framework is
   1456              case-sensitive, unlike formal RFC MIME types.  As a result,
   1457              MIME types here should always use lower case letters.</em></p> -->
   1458         <attr name="mimeType" format="string" />
   1459         <!-- Specify a URI scheme that is handled, as per
   1460              {@link android.content.IntentFilter#addDataScheme
   1461              IntentFilter.addDataScheme()}.
   1462              <p><em>Note: scheme matching in the Android framework is
   1463              case-sensitive, unlike the formal RFC.  As a result,
   1464              schemes here should always use lower case letters.</em></p> -->
   1465         <attr name="scheme" format="string" />
   1466         <!-- Specify a URI authority host that is handled, as per
   1467              {@link android.content.IntentFilter#addDataAuthority
   1468              IntentFilter.addDataAuthority()}.
   1469              <p><em>Note: host name matching in the Android framework is
   1470              case-sensitive, unlike the formal RFC.  As a result,
   1471              host names here should always use lower case letters.</em></p> -->
   1472         <attr name="host" format="string" />
   1473         <!-- Specify a URI authority port that is handled, as per
   1474              {@link android.content.IntentFilter#addDataAuthority
   1475              IntentFilter.addDataAuthority()}.  If a host is supplied
   1476              but not a port, any port is matched. -->
   1477         <attr name="port" format="string" />
   1478         <!-- Specify a URI path that must exactly match, as per
   1479              {@link android.content.IntentFilter#addDataPath
   1480              IntentFilter.addDataAuthority()} with
   1481              {@link android.os.PatternMatcher#PATTERN_LITERAL}. -->
   1482         <attr name="path" />
   1483         <!-- Specify a URI path that must be a prefix to match, as per
   1484              {@link android.content.IntentFilter#addDataPath
   1485              IntentFilter.addDataAuthority()} with
   1486              {@link android.os.PatternMatcher#PATTERN_PREFIX}. -->
   1487         <attr name="pathPrefix" />
   1488         <!-- Specify a URI path that matches a simple pattern, as per
   1489              {@link android.content.IntentFilter#addDataPath
   1490              IntentFilter.addDataAuthority()} with
   1491              {@link android.os.PatternMatcher#PATTERN_SIMPLE_GLOB}. 
   1492              Note that because '\' is used as an escape character when
   1493              reading the string from XML (before it is parsed as a pattern),
   1494              you will need to double-escape: for example a literal "*" would
   1495              be written as "\\*" and a literal "\" would be written as
   1496              "\\\\".  This is basically the same as what you would need to
   1497              write if constructing the string in Java code. -->
   1498         <attr name="pathPattern" />
   1499     </declare-styleable>
   1500     
   1501     <!-- Attributes that can be supplied in an AndroidManifest.xml
   1502          <code>category</code> tag, a child of the
   1503          {@link #AndroidManifestIntentFilter intent-filter} tag. 
   1504          See {@link android.content.IntentFilter#addCategory} for
   1505          more information. -->
   1506     <declare-styleable name="AndroidManifestCategory" parent="AndroidManifestIntentFilter">
   1507         <!-- The name of category that is handled, using the Java-style
   1508              naming convention.  For example, to support
   1509              {@link android.content.Intent#CATEGORY_LAUNCHER Intent.CATEGORY_LAUNCHER}
   1510              you would put <code>android.intent.category.LAUNCHER</code> here.
   1511              Custom actions should generally use a prefix matching the
   1512              package name. -->
   1513         <attr name="name" />
   1514     </declare-styleable>
   1515     
   1516     <!-- Attributes that can be supplied in an AndroidManifest.xml
   1517          <code>instrumentation</code> tag, a child of the root
   1518          {@link #AndroidManifest manifest} tag. -->
   1519     <declare-styleable name="AndroidManifestInstrumentation" parent="AndroidManifest">
   1520         <!-- Required name of the class implementing the instrumentation, deriving from
   1521             {@link android.app.Instrumentation}.  This is a fully
   1522             qualified class name (for example, com.mycompany.myapp.MyActivity); as a
   1523             short-hand if the first character of the class
   1524             is a period then it is appended to your package name. -->
   1525         <attr name="name" />
   1526         <attr name="targetPackage" />
   1527         <attr name="label" />
   1528         <attr name="icon" />
   1529         <attr name="logo" />
   1530         <attr name="handleProfiling" />
   1531         <attr name="functionalTest" />
   1532     </declare-styleable>
   1533     
   1534     <!-- Attributes that can be supplied in an AndroidManifest.xml
   1535          <code>screen</code> tag, a child of <code>compatible-screens</code>,
   1536          which is itseld a child of the root
   1537          {@link #AndroidManifest manifest} tag. -->
   1538     <declare-styleable name="AndroidManifestCompatibleScreensScreen"
   1539                        parent="AndroidManifest.AndroidManifestCompatibleScreens">
   1540         <!-- Specifies a compatible screen size, as per the device
   1541              configuration screen size bins. -->
   1542         <attr name="screenSize">
   1543             <!-- A small screen configuration, at least 240x320db. -->
   1544             <enum name="small" value="200" />
   1545             <!-- A normal screen configuration, at least 320x480db. -->
   1546             <enum name="normal" value="300" />
   1547             <!-- A large screen configuration, at least 400x530db. -->
   1548             <enum name="large" value="400" />
   1549             <!-- An extra large screen configuration, at least 600x800db. -->
   1550             <enum name="xlarge" value="500" />
   1551         </attr>
   1552         <!-- Specifies a compatible screen density, as per the device
   1553              configuration screen density bins. -->
   1554         <attr name="screenDensity" format="integer">
   1555             <!-- A low density screen, approximately 120dpi. -->
   1556             <enum name="ldpi" value="120" />
   1557             <!-- A medium density screen, approximately 160dpi. -->
   1558             <enum name="mdpi" value="160" />
   1559             <!-- A high density screen, approximately 240dpi. -->
   1560             <enum name="hdpi" value="240" />
   1561             <!-- An extra high density screen, approximately 320dpi. -->
   1562             <enum name="xhdpi" value="320" />
   1563         </attr>
   1564     </declare-styleable>
   1565 
   1566     <!-- The attribute that holds a Base64-encoded public key. -->
   1567     <attr name="publicKey" format="string" />
   1568 
   1569     <!-- Attributes relating to a package verifier. -->
   1570     <declare-styleable name="AndroidManifestPackageVerifier" parent="AndroidManifest">
   1571         <!-- Specifies the Java-style package name that defines this
   1572              package verifier. -->
   1573         <attr name="name" />
   1574 
   1575         <!-- The Base64 encoded public key of the package verifier's
   1576              signature. -->
   1577         <attr name="publicKey" />
   1578     </declare-styleable>
   1579 
   1580     <!-- Declaration of an {@link android.content.Intent} object in XML.  May
   1581          also include zero or more {@link #IntentCategory <category> and
   1582          {@link #Extra <extra>} tags. -->
   1583     <declare-styleable name="Intent">
   1584         <!-- The action name to assign to the Intent, as per
   1585             {@link android.content.Intent#setAction Intent.setAction()}. -->
   1586         <attr name="action" format="string" />
   1587         <!-- The data URI to assign to the Intent, as per
   1588             {@link android.content.Intent#setData Intent.setData()}.
   1589             <p><em>Note: scheme and host name matching in the Android framework is
   1590             case-sensitive, unlike the formal RFC.  As a result,
   1591             URIs here should always be normalized to use lower case letters
   1592             for these elements (as well as other proper Uri normalization).</em></p> -->
   1593         <attr name="data" format="string" />
   1594         <!-- The MIME type name to assign to the Intent, as per
   1595             {@link android.content.Intent#setType Intent.setType()}.
   1596             <p><em>Note: MIME type matching in the Android framework is
   1597             case-sensitive, unlike formal RFC MIME types.  As a result,
   1598             MIME types here should always use lower case letters.</em></p> -->
   1599         <attr name="mimeType" />
   1600         <!-- The package part of the ComponentName to assign to the Intent, as per
   1601             {@link android.content.Intent#setComponent Intent.setComponent()}. -->
   1602         <attr name="targetPackage" />
   1603         <!-- The class part of the ComponentName to assign to the Intent, as per
   1604             {@link android.content.Intent#setComponent Intent.setComponent()}. -->
   1605         <attr name="targetClass" format="string" />
   1606     </declare-styleable>
   1607     
   1608     <!-- A category to add to an Intent, as per
   1609             {@link android.content.Intent#addCategory Intent.addCategory()}. -->
   1610     <declare-styleable name="IntentCategory" parent="Intent">
   1611         <!-- Required name of the category. -->
   1612         <attr name="name" />
   1613     </declare-styleable>
   1614     
   1615     <!-- An extra data value to place into a an extra/name value pair held
   1616             in a Bundle, as per {@link android.os.Bundle}. -->
   1617     <declare-styleable name="Extra" parent="Intent">
   1618         <!-- Required name of the extra data. -->
   1619         <attr name="name" />
   1620         <!-- Concrete value to put for this named extra data. -->
   1621         <attr name="value" />
   1622     </declare-styleable>
   1623 </resources>
   1624