page.title=App Manifest
@jd:body

<div id="qv-wrapper">
<div id="qv">

<h2>In this document</h2>
<ol>
<li><a href="#filestruct">Structure of the Manifest File</a></li>
<li><a href="#filec">File Conventions</a>
<li><a href="#filef">File Features</a>
	<ol>
	<li><a href="#ifs">Intent Filters</a></li>
	<li><a href="#iconlabel">Icons and Labels</a></li>
	<li><a href="#perms">Permissions</a></li>
	<li><a href="#libs">Libraries</a></li>
	</ol></li>
</ol>
</div>
</div>

<p>
  Every application must have an AndroidManifest.xml file (with precisely that
  name) in its root directory. <span itemprop="description">The manifest file
  presents essential information about your app to the Android system,
  information the system must have before it can run any of the app's
  code.</span> Among other things, the manifest does the following:
</p>

<ul>
<li>It names the Java package for the application.
The package name serves as a unique identifier for the application.</li>

<li>It describes the components of the application &mdash; the activities, 
services, broadcast receivers, and content providers that the application is 
composed of.  It names the classes that implement each of the components and 
publishes their capabilities (for example, which {@link android.content.Intent 
Intent} messages they can handle).  These declarations let the Android system 
know what the components are and under what conditions they can be launched.</li>

<li>It determines which processes will host application components.</li>  

<li>It declares which permissions the application must have in order to 
access protected parts of the API and interact with other applications.</li>  

<li>It also declares the permissions that others are required to have in 
order to interact with the application's components.</li>

<li>It lists the {@link android.app.Instrumentation} classes that provide 
profiling and other information as the application is running.  These declarations 
are present in the manifest only while the application is being developed and 
tested; they're removed before the application is published.</li>

<li>It declares the minimum level of the Android API that the application 
requires.</li>

<li>It lists the libraries that the application must be linked against.</li>
</ul>


<h2 id="filestruct">Structure of the Manifest File</h2>

<p>
The diagram below shows the general structure of the manifest file and 
every element that it can contain.  Each element, along with all of its 
attributes, is documented in full in a separate file.  To view detailed 
information about any element, click on the element name in the diagram, 
in the alphabetical list of elements that follows the diagram, or on any
other mention of the element name. 
</p>

<pre>
&lt;?xml version="1.0" encoding="utf-8"?&gt;

<a href="{@docRoot}guide/topics/manifest/manifest-element.html">&lt;manifest&gt;</a>

    <a href="{@docRoot}guide/topics/manifest/uses-permission-element.html">&lt;uses-permission /&gt;</a>
    <a href="{@docRoot}guide/topics/manifest/permission-element.html">&lt;permission /&gt;</a>
    <a href="{@docRoot}guide/topics/manifest/permission-tree-element.html">&lt;permission-tree /&gt;</a>
    <a href="{@docRoot}guide/topics/manifest/permission-group-element.html">&lt;permission-group /&gt;</a>
    <a href="{@docRoot}guide/topics/manifest/instrumentation-element.html">&lt;instrumentation /&gt;</a>
    <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html">&lt;uses-sdk /&gt;</a>
    <a href="{@docRoot}guide/topics/manifest/uses-configuration-element.html">&lt;uses-configuration /&gt;</a>  <!-- ##api level 3## -->
    <a href="{@docRoot}guide/topics/manifest/uses-feature-element.html">&lt;uses-feature /&gt;</a>  <!-- ##api level 4## -->
    <a href="{@docRoot}guide/topics/manifest/supports-screens-element.html">&lt;supports-screens /&gt;</a>  <!-- ##api level 4## -->
    <a href="{@docRoot}guide/topics/manifest/compatible-screens-element.html">&lt;compatible-screens /&gt;</a>  <!-- ##api level 9## -->
    <a href="{@docRoot}guide/topics/manifest/supports-gl-texture-element.html">&lt;supports-gl-texture /&gt;</a>  <!-- ##api level 11## -->

    <a href="{@docRoot}guide/topics/manifest/application-element.html">&lt;application&gt;</a>

        <a href="{@docRoot}guide/topics/manifest/activity-element.html">&lt;activity&gt;</a>
            <a href="{@docRoot}guide/topics/manifest/intent-filter-element.html">&lt;intent-filter&gt;</a>
                <a href="{@docRoot}guide/topics/manifest/action-element.html">&lt;action /&gt;</a>
                <a href="{@docRoot}guide/topics/manifest/category-element.html">&lt;category /&gt;</a>
                <a href="{@docRoot}guide/topics/manifest/data-element.html">&lt;data /&gt;</a>
            <a href="{@docRoot}guide/topics/manifest/intent-filter-element.html">&lt;/intent-filter&gt;</a>
            <a href="{@docRoot}guide/topics/manifest/meta-data-element.html">&lt;meta-data /&gt;</a>
        <a href="{@docRoot}guide/topics/manifest/activity-element.html">&lt;/activity&gt;</a>

        <a href="{@docRoot}guide/topics/manifest/activity-alias-element.html">&lt;activity-alias&gt;</a>
            <a href="{@docRoot}guide/topics/manifest/intent-filter-element.html">&lt;intent-filter&gt;</a> . . . <a href="{@docRoot}guide/topics/manifest/intent-filter-element.html">&lt;/intent-filter&gt;</a>
            <a href="{@docRoot}guide/topics/manifest/meta-data-element.html">&lt;meta-data /&gt;</a>
        <a href="{@docRoot}guide/topics/manifest/activity-alias-element.html">&lt;/activity-alias&gt;</a>

        <a href="{@docRoot}guide/topics/manifest/service-element.html">&lt;service&gt;</a>
            <a href="{@docRoot}guide/topics/manifest/intent-filter-element.html">&lt;intent-filter&gt;</a> . . . <a href="{@docRoot}guide/topics/manifest/intent-filter-element.html">&lt;/intent-filter&gt;</a>
            <a href="{@docRoot}guide/topics/manifest/meta-data-element.html">&lt;meta-data/&gt;</a>
        <a href="{@docRoot}guide/topics/manifest/service-element.html">&lt;/service&gt;</a>

        <a href="{@docRoot}guide/topics/manifest/receiver-element.html">&lt;receiver&gt;</a>
            <a href="{@docRoot}guide/topics/manifest/intent-filter-element.html">&lt;intent-filter&gt;</a> . . . <a href="{@docRoot}guide/topics/manifest/intent-filter-element.html">&lt;/intent-filter&gt;</a>
            <a href="{@docRoot}guide/topics/manifest/meta-data-element.html">&lt;meta-data /&gt;</a>
        <a href="{@docRoot}guide/topics/manifest/receiver-element.html">&lt;/receiver&gt;</a>

        <a href="{@docRoot}guide/topics/manifest/provider-element.html">&lt;provider&gt;</a>
            <a href="{@docRoot}guide/topics/manifest/grant-uri-permission-element.html">&lt;grant-uri-permission /&gt;</a>
            <a href="{@docRoot}guide/topics/manifest/meta-data-element.html">&lt;meta-data /&gt;</a>
            <a href="{@docRoot}guide/topics/manifest/path-permission-element.html">&lt;path-permission /&gt;</a>
        <a href="{@docRoot}guide/topics/manifest/provider-element.html">&lt;/provider&gt;</a>

        <a href="{@docRoot}guide/topics/manifest/uses-library-element.html">&lt;uses-library /&gt;</a>

    <a href="{@docRoot}guide/topics/manifest/application-element.html">&lt;/application&gt;</a>

<a href="{@docRoot}guide/topics/manifest/manifest-element.html">&lt;/manifest&gt;</a>
</pre>

<p>
All the elements that can appear in the manifest file are listed below 
in alphabetical order.  These are the only legal elements; you cannot 
add your own elements or attributes.  
</p>

<p style="margin-left: 2em">
<code><a href="{@docRoot}guide/topics/manifest/action-element.html">&lt;action&gt;</a></code>
<br/><code><a href="{@docRoot}guide/topics/manifest/activity-element.html">&lt;activity&gt;</a></code>
<br/><code><a href="{@docRoot}guide/topics/manifest/activity-alias-element.html">&lt;activity-alias&gt;</a></code>
<br/><code><a href="{@docRoot}guide/topics/manifest/application-element.html">&lt;application&gt;</a></code>
<br/><code><a href="{@docRoot}guide/topics/manifest/category-element.html">&lt;category&gt;</a></code>
<br/><code><a href="{@docRoot}guide/topics/manifest/data-element.html">&lt;data&gt;</a></code>
<br/><code><a href="{@docRoot}guide/topics/manifest/grant-uri-permission-element.html">&lt;grant-uri-permission&gt;</a></code>
<br/><code><a href="{@docRoot}guide/topics/manifest/instrumentation-element.html">&lt;instrumentation&gt;</a></code>
<br/><code><a href="{@docRoot}guide/topics/manifest/intent-filter-element.html">&lt;intent-filter&gt;</a></code>
<br/><code><a href="{@docRoot}guide/topics/manifest/manifest-element.html">&lt;manifest&gt;</a></code>
<br/><code><a href="{@docRoot}guide/topics/manifest/meta-data-element.html">&lt;meta-data&gt;</a></code>
<br/><code><a href="{@docRoot}guide/topics/manifest/permission-element.html">&lt;permission&gt;</a></code>
<br/><code><a href="{@docRoot}guide/topics/manifest/permission-group-element.html">&lt;permission-group&gt;</a></code>
<br/><code><a href="{@docRoot}guide/topics/manifest/permission-tree-element.html">&lt;permission-tree&gt;</a></code>
<br/><code><a href="{@docRoot}guide/topics/manifest/provider-element.html">&lt;provider&gt;</a></code>
<br/><code><a href="{@docRoot}guide/topics/manifest/receiver-element.html">&lt;receiver&gt;</a></code>
<br/><code><a href="{@docRoot}guide/topics/manifest/service-element.html">&lt;service&gt;</a></code>
<br/><code><a href="{@docRoot}guide/topics/manifest/supports-screens-element.html">&lt;supports-screens&gt;</a></code>  <!-- ##api level 4## -->
<br/><code><a href="{@docRoot}guide/topics/manifest/uses-configuration-element.html">&lt;uses-configuration&gt;</a></code>  <!-- ##api level 3## -->
<br/><code><a href="{@docRoot}guide/topics/manifest/uses-feature-element.html">&lt;uses-feature&gt;</a></code>  <!-- ##api level 4## -->
<br/><code><a href="{@docRoot}guide/topics/manifest/uses-library-element.html">&lt;uses-library&gt;</a></code>
<br/><code><a href="{@docRoot}guide/topics/manifest/uses-permission-element.html">&lt;uses-permission&gt;</a></code>
<br/><code><a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html">&lt;uses-sdk&gt;</a></code>
</p>


    

<h2 id="filec">File Conventions</h2>

<p>
Some conventions and rules apply generally to all elements and attributes 
in the manifest:
</p>

<dl>
<dt><b>Elements</b></dt>
<dd>Only the 
<code><a href="{@docRoot}guide/topics/manifest/manifest-element.html">&lt;manifest&gt;</a></code> and
<code><a href="{@docRoot}guide/topics/manifest/application-element.html">&lt;application&gt;</a></code> 
elements are required, they each must be present and can occur only once.  
Most of the others can occur many times or not at all &mdash; although at 
least some of them must be present for the manifest to accomplish anything 
meaningful.

<p>
If an element contains anything at all, it contains other elements.  
All values are set through attributes, not as character data within an element.
</p>

<p>
Elements at the same level are generally not ordered.  For example,
<code><a href="{@docRoot}guide/topics/manifest/activity-element.html">&lt;activity&gt;</a></code>, 
<code><a href="{@docRoot}guide/topics/manifest/provider-element.html">&lt;provider&gt;</a></code>, and 
<code><a href="{@docRoot}guide/topics/manifest/service-element.html">&lt;service&gt;</a></code> 
elements can be intermixed in any sequence.  (An 
<code><a href="{@docRoot}guide/topics/manifest/activity-alias-element.html">&lt;activity-alias&gt;</a></code>
element is the exception to this rule:  It must follow the 
<code><a href="{@docRoot}guide/topics/manifest/activity-element.html">&lt;activity&gt;</a></code> 
it is an alias for.)
</p></dd>

<dt><b>Attributes</b></dt>
<dd>In a formal sense, all attributes are optional.  However, there are some 
that must be specified for an element to accomplish its purpose.  Use the 
documentation as a guide.  For truly optional attributes, it mentions a default 
value or states what happens in the absence of a specification.

<p>Except for some attributes of the root 
<code><a href="{@docRoot}guide/topics/manifest/manifest-element.html">&lt;manifest&gt;</a></code> 
element, all attribute names begin with an {@code android:} prefix &mdash; 
for example, {@code android:alwaysRetainTaskState}.  Because the prefix is 
universal, the documentation generally omits it when referring to attributes 
by name.</p></dd>

<dt><b>Declaring class names</b></dt>
<dd>Many elements correspond to Java objects, including elements for the 
application itself (the 
<code><a href="{@docRoot}guide/topics/manifest/application-element.html">&lt;application&gt;</a></code> 
element) and its principal components &mdash; activities 
(<code><a href="{@docRoot}guide/topics/manifest/activity-element.html">&lt;activity&gt;</a></code>), 
services 
(<code><a href="{@docRoot}guide/topics/manifest/service-element.html">&lt;service&gt;</a></code>), 
broadcast receivers 
(<code><a href="{@docRoot}guide/topics/manifest/receiver-element.html">&lt;receiver&gt;</a></code>), 
and content providers 
(<code><a href="{@docRoot}guide/topics/manifest/provider-element.html">&lt;provider&gt;</a></code>).  

<p>
If you define a subclass, as you almost always would for the component classes 
({@link android.app.Activity}, {@link android.app.Service}, 
{@link android.content.BroadcastReceiver}, and {@link android.content.ContentProvider}), 
the subclass is declared through a {@code name} attribute.  The name must include 
the full package designation.  
For example, an {@link android.app.Service} subclass might be declared as follows:
</p>

<pre>&lt;manifest . . . &gt;
    &lt;application . . . &gt;
        &lt;service android:name="com.example.project.SecretService" . . . &gt;
            . . .
        &lt;/service&gt;
        . . .
    &lt;/application&gt;
&lt;/manifest&gt;</pre>

<p>
However, as a shorthand, if the first character of the string is a period, the 
string is appended to the application's package name (as specified by the 
<code><a href="{@docRoot}guide/topics/manifest/manifest-element.html">&lt;manifest&gt;</a></code> 
element's 
<code><a href="{@docRoot}guide/topics/manifest/manifest-element.html#package">package</a></code> 
attribute).  The following assignment is the same as the one above: 
</p>

<pre>&lt;manifest package="com.example.project" . . . &gt;
    &lt;application . . . &gt;
        &lt;service android:name=".SecretService" . . . &gt;
            . . .
        &lt;/service&gt;
        . . .
    &lt;/application&gt;
&lt;/manifest&gt;</pre>

<p>
When starting a component, Android creates an instance of the named subclass.  
If a subclass isn't specified, it creates an instance of the base class.
</p></dd>

<dt><b>Multiple values</b></dt>
<dd>If more than one value can be specified, the element is almost always 
repeated, rather than listing multiple values within a single element.  
For example, an intent filter can list several actions:

<pre>&lt;intent-filter . . . &gt;
    &lt;action android:name="android.intent.action.EDIT" /&gt;
    &lt;action android:name="android.intent.action.INSERT" /&gt;
    &lt;action android:name="android.intent.action.DELETE" /&gt;
    . . .
&lt;/intent-filter&gt;</pre></dd>

<dt><b>Resource values</b></dt>
<dd>Some attributes have values that can be displayed to users &mdash; for 
example, a label and an icon for an activity.  The values of these attributes 
should be localized and therefore set from a resource or theme.  Resource 
values are expressed in the following format,</p>

<p style="margin-left: 2em">{@code @[<i>package</i>:]<i>type</i>:<i>name</i>}</p>

<p>
where the <i>package</i> name can be omitted if the resource is in the same package 
as the application, <i>type</i> is a type of resource &mdash; such as "string" or 
"drawable" &mdash; and <i>name</i> is the name that identifies the specific resource.  
For example:
</p>

<pre>&lt;activity android:icon="@drawable/smallPic" . . . &gt</pre>

<p>
Values from a theme are expressed in a similar manner, but with an initial '{@code ?}' 
rather than '{@code @}':
</p>

<p style="margin-left: 2em">{@code ?[<i>package</i>:]<i>type</i>:<i>name</i>}
</p></dd>

<dt><b>String values</b></dt>
<dd>Where an attribute value is a string, double backslashes ('{@code \\}') 
must be used to escape characters &mdash; for example, '{@code \\n}' for 
a newline or '{@code \\uxxxx}' for a Unicode character.</dd>
</dl>


<h2 id="filef">File Features</h2>

<p>
The following sections describe how some Android features are reflected 
in the manifest file.
</p>


<h3 id="ifs">Intent Filters</h3>

<p>
The core components of an application (its activities, services, and broadcast 
receivers) are activated by <i>intents</i>.  An intent is a 
bundle of information (an {@link android.content.Intent} object) describing a 
desired action &mdash; including the data to be acted upon, the category of 
component that should perform the action, and other pertinent instructions.  
Android locates an appropriate component to respond to the intent, launches 
a new instance of the component if one is needed, and passes it the 
Intent object.
</p>

<p>
Components advertise their capabilities &mdash; the kinds of intents they can 
respond to &mdash; through <i>intent filters</i>.  Since the Android system 
must learn which intents a component can handle before it launches the component, 
intent filters are specified in the manifest as 
<code><a href="{@docRoot}guide/topics/manifest/intent-filter-element.html">&lt;intent-filter&gt;</a></code> 
elements.  A component may have any number of filters, each one describing 
a different capability.
</p>

<p>
An intent that explicitly names a target component will activate that component;
the filter doesn't play a role.  But an intent that doesn't specify a target by
name can activate a component only if it can pass through one of the component's
filters.
</p>

<p>
For information on how Intent objects are tested against intent filters, 
see a separate document, 
<a href="{@docRoot}guide/components/intents-filters.html">Intents 
and Intent Filters</a>.
</p>


<h3 id="iconlabel">Icons and Labels</h3>

<p>
A number of elements have {@code icon} and {@code label} attributes for a 
small icon and a text label that can be displayed to users.  Some also have a 
{@code description} attribute for longer explanatory text that can also be 
shown on-screen.  For example, the 
<code><a href="{@docRoot}guide/topics/manifest/permission-element.html">&lt;permission&gt;</a></code>
element has all three of these attributes, so that when the user is asked whether 
to grant the permission to an application that has requested it, an icon representing 
the permission, the name of the permission, and a description of what it 
entails can all be presented to the user.
</p>

<p>
In every case, the icon and label set in a containing element become the default 
{@code icon} and {@code label} settings for all of the container's subelements.  
Thus, the icon and label set in the 
<code><a href="{@docRoot}guide/topics/manifest/application-element.html">&lt;application&gt;</a></code> 
element are the default icon and label for each of the application's components.  
Similarly, the icon and label set for a component &mdash; for example, an 
<code><a href="{@docRoot}guide/topics/manifest/activity-element.html">&lt;activity&gt;</a></code> 
element &mdash; are the default settings for each of the component's 
<code><a href="{@docRoot}guide/topics/manifest/intent-filter-element.html">&lt;intent-filter&gt;</a></code> 
elements.  If an
<code><a href="{@docRoot}guide/topics/manifest/application-element.html">&lt;application&gt;</a></code> 
element sets a label, but an activity and its intent filter do not, 
the application label is treated as the label for both the activity and 
the intent filter.
</p>

<p>
The icon and label set for an intent filter are used to represent a component 
whenever the component is presented to the user as fulfilling the function
advertised by the filter.  For example, a filter with 
"{@code android.intent.action.MAIN}" and 
"{@code android.intent.category.LAUNCHER}" settings advertises an activity 
as one that initiates an application &mdash; that is, as
one that should be displayed in the application launcher.  The icon and label 
set in the filter are therefore the ones displayed in the launcher.
</p>


<h3 id="perms">Permissions</h3>

<p>
A <i>permission</i> is a restriction limiting access to a part of the code 
or to data on the device.   The limitation is imposed to protect critical 
data and code that could be misused to distort or damage the user experience.  
</p>

<p>
Each permission is identified by a unique label.  Often the label indicates 
the action that's restricted.  For example, here are some permissions defined 
by Android:
</p>

<p style="margin-left: 2em">{@code android.permission.CALL_EMERGENCY_NUMBERS}
<br/>{@code android.permission.READ_OWNER_DATA}
<br/>{@code android.permission.SET_WALLPAPER}
<br/>{@code android.permission.DEVICE_POWER}</p>

<p>
A feature can be protected by at most one permission.
</p>

<p>
If an application needs access to a feature protected by a permission, 
it must declare that it requires that permission with a 
<code><a href="{@docRoot}guide/topics/manifest/uses-permission-element.html">&lt;uses-permission&gt;</a></code> 
element in the manifest.  Then, when the application is installed on 
the device, the installer determines whether or not to grant the requested 
permission by checking the authorities that signed the application's 
certificates and, in some cases, asking the user.  
If the permission is granted, the application is able to use the protected 
features.  If not, its attempts to access those features will simply fail 
without any notification to the user. 
</p>

<p>
An application can also protect its own components (activities, services, 
broadcast receivers, and content providers) with permissions.  It can employ 
any of the permissions defined by Android (listed in 
{@link android.Manifest.permission android.Manifest.permission}) or declared 
by other applications.  Or it can define its own.  A new permission is declared 
with the 
<code><a href="{@docRoot}guide/topics/manifest/permission-element.html">&lt;permission&gt;</a></code> 
element.  For example, an activity could be protected as follows:
</p>

<pre>
&lt;manifest . . . &gt;
    &lt;permission android:name="com.example.project.DEBIT_ACCT" . . . /&gt;
    &lt;uses-permission android:name="com.example.project.DEBIT_ACCT" /&gt;
    . . .
    &lt;application . . .&gt;
        &lt;activity android:name="com.example.project.FreneticActivity"
                  android:permission="com.example.project.DEBIT_ACCT"
                  . . . &gt;
            . . .
        &lt;/activity&gt;
    &lt;/application&gt;
&lt;/manifest&gt;
</pre>

<p>
Note that, in this example, the {@code DEBIT_ACCT} permission is not only 
declared with the 
<code><a href="{@docRoot}guide/topics/manifest/permission-element.html">&lt;permission&gt;</a></code> 
element, its use is also requested with the 
<code><a href="{@docRoot}guide/topics/manifest/uses-permission-element.html">&lt;uses-permission&gt;</a></code> 
element.  Its use must be requested in order for other components of the 
application to launch the protected activity, even though the protection 
is imposed by the application itself.  
</p>

<p>
If, in the same example, the {@code permission} attribute was set to a 
permission declared elsewhere 
(such as {@code android.permission.CALL_EMERGENCY_NUMBERS}, it would not 
have been necessary to declare it again with a 
<code><a href="{@docRoot}guide/topics/manifest/permission-element.html">&lt;permission&gt;</a></code> 
element.  However, it would still have been necessary to request its use with 
<code><a href="{@docRoot}guide/topics/manifest/uses-permission-element.html">&lt;uses-permission&gt;</a></code>. 
</p>

<p>
The 
<code><a href="{@docRoot}guide/topics/manifest/permission-tree-element.html">&lt;permission-tree&gt;</a></code> 
element declares a namespace for a group of permissions that will be defined in 
code.  And 
<code><a href="{@docRoot}guide/topics/manifest/permission-group-element.html">&lt;permission-group&gt;</a></code>
defines a label for a set of permissions (both those declared in the manifest with 
<code><a href="{@docRoot}guide/topics/manifest/permission-element.html">&lt;permission&gt;</a></code> 
elements and those declared elsewhere).  It affects only how the permissions are 
grouped when presented to the user.  The 
<code><a href="{@docRoot}guide/topics/manifest/permission-group-element.html">&lt;permission-group&gt;</a></code>
element does not specify which permissions belong to the group; 
it just gives the group a name.  A permission is placed in the group
by assigning the group name to the
<code><a href="{@docRoot}guide/topics/manifest/permission-element.html">&lt;permission&gt;</a></code> 
element's 
<code><a href="{@docRoot}guide/topics/manifest/permission-element.html#pgroup">permissionGroup</a></code> 
attribute.
</p>


<h3 id="libs">Libraries</h3>

<p>
Every application is linked against the default Android library, which 
includes the basic packages for building applications (with common classes 
such as Activity, Service, Intent, View, Button, Application, ContentProvider, 
and so on).
</p>

<p>
However, some packages reside in their own libraries.  If your application 
uses code from any of these packages, it must explicitly asked to be linked 
against them.  The manifest must contain a separate 
<code><a href="{@docRoot}guide/topics/manifest/uses-library-element.html">&lt;uses-library&gt;</a></code> 
element to name each of the libraries.  (The library name can be found in the 
documentation for the package.)
</p>
