Синтаксис

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="рядок символів"
          android:sharedUserId="рядок символів"
          android:sharedUserLabel="ресурс рядка" 
          android:versionCode="ціле число"
          android:versionName="рядок симолів"
          android:installLocation=["auto" | "internalOnly" | "preferExternal"] >

</manifest>

Повинен містити

<application>

Може містити

<compatible-screens> <instrumentation> <permission> <permission-group> <permission-tree> <supports-gl-texture> <supports-screens> <uses-configuration> <uses-feature> <uses-permission> <uses-permission-sdk-23> <uses-sdk>

Опис

Кореневий елемент файлу AndroidManifest.xml. Він повинен містити елемент <application> і визначати атрибути xmlns:android i package.

Атрибути

xml:android Визначає простір імен для Android програми. Значення цього атрибуту повинне завжди бути встановленим у значення “http://schemas.android.com/apk/res/android”. package Повне ім'я Java-пакету для поточної програми. Дане ім'я повинне бути унікальним. Воно може містити символи у верхньому і нижньому регістрах (від 'A' до 'Z'), числа і символи підкреслювання. Однак імена кожного пакету повинні починатися з літери. Для запобігання конфліктів з іншими розробниками, ви повинні використовувати власне доменне ім'я як базис для ім'я вашого пакету (в оберненому порядку). Наприклад, імена програми, опубліковані компанією Google, розпочинаються з com.google. Ви також не повинні використовувати простір імен com.example, для публікування вашої програми. Ім'я пакету відіграє роль унікального ідентифікатора для програм. Воно також являється стандартним ім'ям для процесу програми (перегляньте атрибут process елементу <application>). Після того, як ви опублікували вашу програму, ви не можете змінити ім'я пакету. Ім'я пакету визначає ідентичність вашої програми, отож, якщо ви змінюєте її — поточна програма буде вважатися іншою і користувачі попередньої версії не зможуть оновити її до нової версії. android:sharedUserId Ім'я ідентифікатора користувача Лінукс, який буде розділятися з іншими програмами. За умовчанням, Android присвоює кожній програмі унікальний ідентифікатор. Однак, якщо даний атрибут встановлений у такий ж як у інших програм, вони усі будуть мати один ідентифікатор і один сертифікат. Програми з однаковим ідентифікатором користувача можуть отримувати доступ до своїх даних, і, за бажанням, виконуватись у одному процесі. android:sharedUserLabel Читабельна мітка для ідентифікатора користувача. Мітка повинна бути встановлена як виноска на рядковий ресурс, і не може бути вбудованим текстом. Цей атрибут був впроваджений у API рівня 3. Він враховується тільки при наявності встановленого атрибуту sharedUserId. android:versionCode Внутрішнє номер версії. Це число використовується тільки для визначення чи версія однієї копії програми являється новішою відносно іншої (більші числа вказують на новішу версію). Дане число не являється номером версії, яке показується користувачам. Значення повинно бути цілочисельним, наприклад, “100”. Ви можете визначити його як забажаєте, але кожна наступна версія повинна бути більшою ніж попередня. Наприклад, це може бути номером побудови. Або ви можете перекладати число версії у форматі “х.у” у ціле число, кодуючи “х” і “у” окремо у старших і молодших бітах числа. Або ж ви можете просто збільшувати число на одиницю кожного разу, коли виходить нова версія. android:versionName Номер версії, який відображається користувачам. Цей атрибут може бути встановленим як звичайний текст або як адреса текстового ресурсу. Дане значення немає іншого призначення, як окрім відображення користувачам. Атрибут versionCode утримує значущий номер версії. android:installLocation Місце встановлення за умовчанням для програми. Наступні пункти вказують на єдині можливі варіанти:
  • internalOnly. Програма повинна бути встановленою тільки на внутрішню пам'ять пристрою. Якщо даний параметр встановлено, програма ніколи не буде встановленою на зовнішню пам'ять. Якщо внутрішня пам'ять заповнена, тоді система не встановить дану програму. Це також стандартна поведінка, якщо ви не визначене атрибут android:installLocation.
  • auto. Програма може бути встановленою на зовнішню пам'ять, але система встановить її на внутрішню пам'ять за умовчанням. Якщо внутрішня пам'ять заповнена, система встановить її на зовнішню. Після інсталяції, користувач може перемістити програму на інший тип пам'яті відносно налаштувань системи.
  • preferExternal. Бажано, щоб програма була встановленою на зовнішню пам'ять (SD карту). Немає гарантії, що система виконає дане налаштування. Програма все-одно може бути встановленою у внутрішню пам'ять, якщо зовнішня пам'ять недоступна або заповнена. Після встановлення програми, користувач може перемістити програму на інший тип пам'яті, відносно налаштувань системи.
Коли програма встановлена на зовнішній носій:
  • Файл .apk зберігається у зовнішній пам'яті, але будь-які дані програми (на подобі баз даних) все-одно зберігаються у внутрішній пам'яті пристрою.
  • Контейнер у якому зберігається файл apk являється зашифрованим, отож він може бути використаним тільки на пристрої, який встановив його. Хоча декілька SD-карт можуть використовуватись на одному пристрої.
  • За запитом користувача, програму може бути переміщеною на внутрішню пам'ять.
Користувач може також виконати переміщення програми з внутрішньої пам'яті на зовнішню. Однак система не дозволить користувачу перемістити програми на зовнішню пам'ять, якщо її атрибут встановлено у значення internalOnly, яке є значенням за умовчанням.