| page.title=<manifest> |
| parent.title=The AndroidManifest.xml File |
| parent.link=manifest-intro.html |
| @jd:body |
| |
| <dl class="xml"> |
| <dt>syntax:</dt> |
| <dd><pre class="stx"><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"] > |
| . . . |
| </manifest></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"><application></a></code></dd> |
| |
| <dt>can contain:</dt> |
| <dd><code><a href="{@docRoot}guide/topics/manifest/compatible-screens-element.html"><compatible-screens></a></code> |
| <br/><code><a href="{@docRoot}guide/topics/manifest/instrumentation-element.html"><instrumentation></a></code> |
| <br/><code><a href="{@docRoot}guide/topics/manifest/permission-element.html"><permission></a></code> |
| <br/><code><a href="{@docRoot}guide/topics/manifest/permission-group-element.html"><permission-group></a></code> |
| <br/><code><a href="{@docRoot}guide/topics/manifest/permission-tree-element.html"><permission-tree></a></code> |
| <br/><code><a href="{@docRoot}guide/topics/manifest/supports-gl-texture-element.html"><supports-gl-texture></a></code> |
| <br/><code><a href="{@docRoot}guide/topics/manifest/supports-screens-element.html"><supports-screens></a></code> |
| <br/><code><a href="{@docRoot}guide/topics/manifest/uses-configuration-element.html"><uses-configuration></a></code> <!-- ##api level 3## --> |
| <br/><code><a href="{@docRoot}guide/topics/manifest/uses-feature-element.html"><uses-feature></a></code> |
| <br/><code><a href="{@docRoot}guide/topics/manifest/uses-permission-element.html"><uses-permission></a></code> |
| <br/><code><a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html"><uses-sdk></a></code></dd> |
| |
| <p> |
| <dt>description:</dt> |
| <dd itemprop="description">The root element of the AndroidManifest.xml file. It must |
| contain an <code><a href="{@docRoot}guide/topics/manifest/application-element.html"><application></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"><application></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"><activity></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 — 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. Once installed, the user can move the application to |
| either internal or external storage through the system settings.</td> |
| </tr> |
| </table> |
| |
| <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/topics/data/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"><application></a></code></dd> |
| |
| </dl> |