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 xmlns: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 Google Play's Copy 
  Protection feature, it cannot be installed to a device's SD card. However, if you use Google 
  Play's <a href="{@docRoot}guide/market/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>
