page.title=&lt;manifest&gt;
parent.title=The AndroidManifest.xml File
parent.link=manifest-intro.html
@jd:body

<dl class="xml">
<dt>syntax:</dt>
<dd><pre class="stx">&lt;manifest xmlns:<a href="#nspace">android</a>="http://schemas.android.com/apk/res/android"
          <a href="#package">package</a>="<i>string</i>"
          android:<a href="#uid">sharedUserId</a>="<i>string</i>"
          android:<a href="#uidlabel">sharedUserLabel</a>="<i>string resource</i>" <!-- ##api level 3## -->
          android:<a href="#vcode">versionCode</a>="<i>integer</i>"
          android:<a href="#vname">versionName</a>="<i>string</i>"
          android:<a href="#install">installLocation</a>=["auto" | "internalOnly" | "preferExternal"] &gt;
    . . .
&lt;/manifest&gt;</pre></dd>

<p>
<dt>contained in:</dt>
<dd><i>none</i></dd>

<p>
<p>
<dt>must contain:</dt>
<dd><code><a href="{@docRoot}guide/topics/manifest/application-element.html">&lt;application&gt;</a></code></dd>

<dt>can contain:</dt>
<dd><code><a href="{@docRoot}guide/topics/manifest/instrumentation-element.html">&lt;instrumentation&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/uses-configuration-element.html">&lt;uses-configuration&gt;</a></code>  <!-- ##api level 3## -->
<br/><code><a href="{@docRoot}guide/topics/manifest/uses-permission-element.html">&lt;uses-permission&gt;</a></code></dd>
<br/><code><a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html">&lt;uses-sdk&gt;</a></code></dd>

<p>
<dt>description:</dt>
<dd>The root element of the AndroidManifest.xml file.  It must 
contain an <code><a href="{@docRoot}guide/topics/manifest/application-element.html">&lt;application&gt;</a></code> element 
and specify {@code xlmns:android} and {@code package} attributes.</dd>

<dt>attributes:</dt>
<dd>
<dl class="attr">
<dt><a name="nspace"></a>{@code xmlns:android}</dt>
<dd>Defines the Android namespace.  This attribute should always be set 
to "{@code http://schemas.android.com/apk/res/android}".</dd>

<dt><a name="package"></a>{@code package}</dt>
<dd>A full Java-language-style package name for the application.  The name should 
be unique.  The name may contain uppercase or lowercase letters ('A'
through 'Z'), numbers, and underscores ('_').  However, individual
package name parts may only start with letters.

<p>To avoid conflicts with other developers, you should use Internet domain ownership as the
basis for your package names (in reverse). For example, applications published by Google start with
<code>com.google</code>. You should also never use the <code>com.example</code> namespace when
publishing your applications.</p>

  <p>
  The package name serves as a unique identifier for the application.
  It's also the default name for the application process (see the
  <code><a href="{@docRoot}guide/topics/manifest/application-element.html">&lt;application&gt;</a></code>
  element's
  <code><a href="{@docRoot}guide/topics/manifest/application-element.html#aff">process</a></code>
  process</a></code> attribute) and the default task affinity of an activity
  (see the
  <code><a href="{@docRoot}guide/topics/manifest/activity-element.html">&lt;activity&gt;</a></code>
  element's
  <code><a href="{@docRoot}guide/topics/manifest/activity-element.html#aff">taskAffinity</a></code> attribute).
  </p>

  <p class="caution"><strong>Caution:</strong> Once you publish your application, you
<strong>cannot change the package name</strong>. The package name defines your application's
identity, so if you change it, then it is considered to be a different application and users of
the previous version cannot update to the new version.</p>

</dd>

<dt><a name="uid"></a>{@code android:sharedUserId}</dt>
<dd>The name of a Linux user ID that will be shared with other applications.  
By default, Android assigns each application its own unique user ID.  
However, if this attribute is set to the same value for two or more applications, 
they will all share the same ID &mdash; provided that they are also signed 
by the same certificate.  Application with the same user ID can access each 
other's data and, if desired, run in the same process.</dd>

<dt><a name="uidlabel"></a>{@code android:sharedUserLabel}</dt>
<dd>A user-readable label for the shared user ID.  The label must be set as
a reference to a string resource; it cannot be a raw string.

  <p>
  <!-- ##api level indication## -->
  This attribute was introduced in API Level 3.  It is meaningful only if the
  <code><a href="#uid">sharedUserId</a></code> attribute is also set.
  </p>
</dd>

<dt><a name="vcode"></a>{@code android:versionCode}</dt>
<dd>An internal version number.  This number is used only to determine whether
one version is more recent than another, with higher numbers indicating more 
recent versions.  This is not the version number shown to users; that number 
is set by the {@code versionName} attribute.

  <p>
  The value must be set as an integer, such as "100".  You can define it however
  you want, as long as each successive version has a higher number.  For example,
  it could be a build number.  Or you could translate a version number in "x.y"
  format to an integer by encoding the "x" and "y" separately in the lower and
  upper 16 bits.  Or you could simply increase the number by one each time a new
  version is released.
  </p>
</dd>

<dt><a name="vname"></a>{@code android:versionName}</dt>
<dd>The version number shown to users.  This attribute can be set as a raw 
string or as a reference to a string resource.  The string has no other purpose 
than to be displayed to users.  The {@code versionCode} attribute holds 
the significant version number used internally.
</dd>

<dt><a name="install"></a>{@code android:installLocation}</dt>
<dd>The default install location for the application.

<p>The following keyword strings are accepted:</p>

<table>
<tr>
   <th>Value</th>
   <th>Description</th>
</tr><tr>
   <td>"{@code internalOnly}"</td>
   <td>The application must be installed on the internal device storage only. If this is set,
the application will never be installed on the external storage. If the internal
storage is full, then the system will not install the application. This is also the default behavior
if you do not define {@code android:installLocation}.</td>
</tr><tr>
   <td>"{@code auto}"</td>
   <td>The application may be installed on the external storage, but the system will install the
application on the internal storage by default. If the internal storage is full, then the system
will install it on the external storage. Once installed, the user can move the application
to either internal or external storage through the system settings.</td>
</tr><tr>
   <td>"{@code preferExternal}"</td>
   <td>The application prefers to be installed on the external storage (SD card). There is no
guarantee that the system will honor this request. The application might be installed on internal
storage if the external media is unavailable or full, or if the application uses the forward-locking
mechanism (not supported on external storage). Once installed, the user can move the application to
either internal or external storage through the system settings.</td>
</tr>
</table>

<p class="caution"><strong>Caution:</strong> If your application uses the Android Market's Copy 
  Protection feature, it cannot be installed to a device's SD card. However, if you use Android 
  Market's <a href="{@docRoot}guide/publishing/licensing.html">Application Licensing</a> instead, 
  your application <em>can</em> be installed to internal or external storage, including SD cards.</p>

<p class="note"><strong>Note:</strong> By default, your application will be installed on the
  internal storage and cannot be installed on the external storage unless you define this attribute
  to be either "{@code auto}" or "{@code preferExternal}".</p>

<p>When an application is installed on the external storage:</p>
<ul>
  <li>The {@code .apk} file is saved
to the external storage, but any application data (such as databases) is still saved on
the internal device memory.</li>
  <li>The container in which the {@code .apk} file is saved is encrypted with a key that allows
the application to operate only on the device that installed it. (A user cannot
transfer the SD card to another device and use applications installed on the card.) Though,
multiple SD cards can be used with the same device.</li>
  <li>At the user's request, the application can be moved to the internal storage.</li>
</ul>

<p>The user may also request to move an application from the internal storage to the external
storage. However, the system will not allow the user to move the application to external storage if
this attribute is set to {@code internalOnly}, which is the default setting.</p>

<p>Read <a href="{@docRoot}guide/appendix/install-location.html">App Install Location</a> for
more information about using this attribute (including how to maintain backward compatibility).</p>

<p>Introduced in: API Level 8.</p>


</dd>

</dl>
</dd><!-- end attributes -->

<!-- ##api level indication## -->
<dt>introduced in:</dt>
<dd>API Level 1 for all attributes, unless noted otherwise in the attribute description.</dd>

<p>
<dt>see also:</dt>
<dd>
<code><a href="{@docRoot}guide/topics/manifest/application-element.html">&lt;application&gt;</a></code></dd>

</dl>
