Для чого він

AndroidManifest.xml - надає детальну інформацію про програму. У кожному Android додатку ви повинні в побачите цей файл, так як він є обов'язковим для створення додатка на ОС Android.







призначення

У AndroidManifest.xml можна налаштувати такі можливості:

1. Вказати ім'я Java-пакета додатка, який є унікальним ідентифікатором;

2. Описати компоненти програми, служби;

3. Вказати список необхідних дозволів для звернення до захищених частинах API і взаємодії з іншими додатками;

4. Дозволити доступ до ресурсів, які сторонні додатки повинні мати для взаємодії з компонентами цього додатка;

5. Вказати мінімальний і максимальний рівень API Android, необхідний для роботи програми;

Структура 'AndroidManifest.xml'

Коли ви перейдете до написання Бослен складного проекту, то ви помітите, що вам часто перейде звертатися до цього файлу для того щоб настроїти якийсь із необхідних вам компонентів.

Але для того, щоб там щось конфігурувати думаю не погано було б знати, що і для чого потрібно, саме про це піде мова нижче.

Ось всі основні можливості AndroidManifest.xml вони представлені у вигляді xml тегів.

Приблизно так виглядає маніфест файл, де кожен з тегів може зберігати каку-то конфігурацію.

А тепер по черзі, що і для чого.

тег

Це найголовніший тег в якому вкладена вся конфігурація проекту.

За замовчуванням він створюється разом з файлом AndroidManifest і спочатку має початковий набір параметрів:

Що ж означають ці параметри?

xmins: android - визначає простір імен Android;

package - визначає унікальне ім'я пакета додатка, яке ви задали при створенні проекту.

Для чого потрібно вказувати package? Якщо ви захочете завантажити ваш додаток на Google Play, то він перевіряє унікальність при прийомі додатки, тому рекомендується використовувати своє ім'я для уникнення конфліктів з іншими розробниками.

android: versionCode - по суті, це версія вашої програми. Випускаючи нову версію ви вказуєте її в цьому полі, воно повинно бути цілим числом.

Змінивши даний параметр і завантаживши додаток Android у Google Play все користувачам вашої програми буде запропоновано оновиться до нової версії програми.

android: versionName - вказує номер користувальницької версії. Якщо ви знайшли кілька недоробок в вашому додатку і виправили їх, то в цьому випадку можна вказати для цього поля нову версію, що буде говорити Google Play, що це не нова версія додатка, а поліпшена. Для іменування версії можна використовувати рядок або строковий ресурс.

Змінивши даний параметр і завантаживши додаток Android у Google Play все користувачам вашої програми буде запропоновано оновиться до модифікованої версії додатка.

тег

тег дозволяє вам запитувати дозвіл, які з додатком повинні бути надані системою для його нормального функціонування.

Дозволи надаються під час установки програми, а не під час його роботи. має єдиний атрибут з ім'ям дозволу android: name.

android: name - дозволяє дати дозволу на використання ресурсів системи. наприклад:

Найбільш поширені дозволу

- INTERNET - доступ до інтернету;

- RECEIVE_SMS - обробка вхідних SMS;

- ACCESS_COARSE_LOCATION - використання приблизного визначення місцезнаходження за допомогою веж стільникового зв'язку або точок доступу Wi-Fi;

- ACCESS_FINE_LOCATION - точне визначення місцезнаходження за допомогою GPS.

тег

- дозволяє встановити дозволу на використання ресурсів системи або заборонити використання компонентів програми.

android: name - назва дозволу

android: label - ім'я дозволу, що відображається користувачеві

android: description - опис дозволу

android: icon - значок дозволу

android: permissionGroup - визначає приналежність до групи дозволів

android: protectionLevel - рівень захисту

тег

- оголошує базове ім'я для дерева дозволів.







Цей елемент оголошує не саме дозвіл, а тільки простір імен, в яке можуть бути поміщені подальші дозволу.

тег

- визначає ім'я для набору логічно пов'язаних дозволів.

Дозвіл можна помістити в групу, призначивши ім'я групи в атрибуті permissionGroup елемента .

тег

- оголошує об'єкт instrumentation. який дає можливість контролювати взаємодію додатки з системою.

Зазвичай використовується при налагодженні і тестуванні програми та видаляється з release-версії додатка.

тег

- дозволяє оголошувати сумісність додатка до зазначеної версією (або більш новими версіями API) платформи Android.

Рівень API, оголошений додатком, порівнюється з рівнем API системи мобільного пристрою, на який інсталюється цю програму.

Даний тег має наступні атрибути:

android: minSdkVersion - визначає мінімальний рівень API, необхідний для роботи програми.

Система Android буде перешкоджати тому, щоб користувач встановив додаток, якщо рівень API системи буде нижче, ніж значення, визначене в цьому атрибуті. Ви повинні завжди оголошувати цей атрибут, наприклад:

android: maxSDKVersion - дозволяє визначити саму пізню версію, яку готова підтримувати вашу програму.

Ваша програма буде невидимим в Google Play для пристроїв з більш свіжою версією.

targetSDKVersion - дозволяє вказати платформу, для якої ви розробляли і тестували додаток.

Встановлюючи значення для цього атрибута, ви повідомляєте системі, що для підтримки цієї конкретної версії не потрібно ніяких змін.

тег

- вказує необхідну для додатка апаратну і програмну конфігурацію мобільного пристрою.

Наприклад, додаток з додатком для роботи потрібна наявність фронтальної камери або USB порт. Специфікація використовується, щоб уникнути установки програми на пристроях, які не підтримують необхідну конфігурацію.

Якщо додаток може працювати з різними конфігураціями пристрою, необхідно включити в маніфест окремі елементи для кожної конфігурації. Ви можете задати будь-яку комбінацію, що містять такі пристрої

- reqHardKeyboard - використовуйте значення true. коли програму потрібна апаратна клавіатура;

- reqKeyboardType - дозволяє задати тип клавіатури: nokeys. qwerty. twelvekey. undefined;

- reqNavigation - вкажіть одне зі значень: nonav. dpad. trackball. wheel або undefined. якщо потрібно пристрій для навігації;

Додаток не буде встановлюватися на пристрої, який не відповідає заданій вами конфігурації.

В ідеалі, ви повинні розробити такий додаток, яке буде працювати з будь-яким поєднанням пристроїв введення. В цьому випадку не потрібен.

тег

оголошує певну функціональність, необхідну для роботи програми.

Таким чином, програма не буде встановлено на пристроях, які не мають необхідну функціональність. Наприклад, додаток могло б визначити, що воно вимагає фронтальну камеру з автофокусом. Якщо пристрій не має вбудовану фронтальну камеру з автофокусом, додатки не буде інстальовано.

android.hardware.camera.front - потрібно апаратна камера

android.hardware.camera.autofocus - потрібно камера з автоматичним фокусуванням

Можна перевизначити вимога за замовчуванням, додавши атрибут required зі значенням false.

Наприклад, якщо вашій програмі не потрібно, щоб камера підтримувала автофокус:

тег

- визначає здатність екрану, необхідну для функціонування пристрою.

Даний тег дозволяє вказати розміри екран, для якого було створено програму. Система буде масштабувати ваше додаток на основі ваших макетів на тих пристроях, які підтримують зазначені вами дозволу екран.

Для інших випадків система буде розтягувати макет у міру можливості.

smallScreen - QVGA екрани

normalScreen - стандартні екрани HVGA і WQVGA

largeScreen - великі екрани

xlargeScreen - дуже великі екрани, які перевершують розміри планшетів

anyDensity - встановіть значення true. якщо ваше додаток здатне масштабироваться для відображення на екрані з будь-яким дозволом.

За замовчуванням, для кожного атрибута встановлено значення true. Ви можете вказати, які розміри екранів ваше програма не вміє обробляти.

Починаючи з API 13 - Android 3. у тега з'явилися нові атрибути:

requiresSmallestWidthDp - вказуємо мінімальну підтримувану ширину екрану в апаратно-незалежних пікселях. З його допомогою можна відфільтрувати пристрою при розміщенні додатки в Google Play

compatibleWidthLimitDp - задає верхню межу масштабування для вашого застосування. Якщо екран пристрою виходить за вказану межу, система включить режим сумісності.

largestWidthLimitDp - задає абсолютну верхню межу, за межами якої ваше додаток точно не може бути смаштабіровано. В цьому випадку під час запуску програми в режимі сумісності, яку не можна відключити.

Слід уникати подібних ситуацій і розробляти макети для будь-яких екранів.

тег

- вказує для кожного екрану конфігурацію, з якої воно сумісно. Тільки один екземпляр елемента допускається в маніфесті, але він може містити кілька елементів .

кожен елемент вказує конкретний розмір екрану з якої додаток сумісно.

Цей елемент є інформаційним і може бути використаний зовнішні послуги (наприклад, Google Play), щоб краще зрозуміти сумісність програми з конкретними конфігураціями екрану і включити фільтрацію для користувачів.

Даний тих має два атрибути:

android: screenSize - вказує розмір екрану.

small - маленький;

normal - середній;

large - великий;

xlarge - дуже великий;

android: screen - вказуємо dpi







Схожі статті