Файл манифеста что это андроид

Файл манифеста что это андроид

Каждое приложение содержит файл манифеста AndroidManifest.xml . Данный файл определяет важную информацию о приложении — название, версию, иконки, какие разрешения приложение использует, регистрирует все используемые классы activity, сервисы и т.д. Данный файл можно найти в проекте в папке manifests :

Файл манифеста может выглядеть так:

Элементом корневого уровня является узел manifest . В данном случае только определяется пакет приложения — package=»com.example.viewapp» . Собственно это определение файла манифеста по умолчанию. В каждом конкретном случае может отличаться пакет приложения, остальное содержимое при создании проекта с пустой activity будет аналогичным.

Большинство настроек уровня приложения определяются элементом application . Ряд настроек задаются с помощью атрибутов. По умолчанию применяются следующие атрибуты:

android:allowBackup указывает, будет ли для приложения создаваться резервная копия. Значение android:allowBackup=»true» разрешает создание резервной копии.

android:icon устанавливает иконку приложения. При значении android:icon=»@mipmap/ic_launcher» иконка приложения берется из каталога res/mipmap

android:roundIcon устанавливает круглую иконку приложения. Также берется из каталога res/mipmap

android:label задает название приложение, которое будет отображаться на мобильном устройстве в списке приложений и в заголовке. В данном случае оно хранится в строковых ресурсах — android:label=»@string/app_name» .

android:supportsRtl указывает, могут ли использоваться различные RTL API — специальные API для работы с правосторонней ориентацией текста (например, для таких языков как арабский или фарси).

android:theme устанавливает тему приложения. Подробно темы будут рассмотрены далее, а пока достаточно знать, что тема определяет общий стиль приложения. Значение @style/Theme.ViewApp» берет тему «Theme.ViewApp» из каталога res/values/themes

Вложенные элементы activity определяют все используемые в приложении activity. В данном случае видно, что в приложении есть только одна activity — MainActivity.

Элемент intent-filter в MainActivity указывает, как данная activity будет использоваться. В частности, с помощью узла action android:name=»android.intent.action.MAIN» , что данная activity будет входной точкой в приложение и не должна получать какие-либо данные извне.

Элемент category android:name=»android.intent.category.LAUNCHER» указывает, что MainActivity будет представлять стартовый экран, который отображается при запуске приложения.

Файл манифеста может содержать множество элементов, которые имеют множество атрибутов. И все возможные элементы и их атрибуты можно найти в документации. Здесь же рассмотрим некоторые примеры использования.

Определение версии

С помощью атрибутов элемента manifest можно определить версию приложения и его кода:

Атрибут android:versionName указывает на номер версии, который будет отображаться пользователю и на которую будут ориентироваться пользователи при работе с приложением.

Тогда как атрибут android:versionCode представляет номер версии для внутреннего использования. Этот номер только определяет, что одна версия приложения более новая, чем какая-то другая с меньшим номером номером версии. Этот номер не отображается пользователям.

При желании мы также можем определить версию в ресурсах, а здесь ссылаться на ресурс.

Установка версии SDK

Для управления версией android sdk в файле манифеста определяется элемент . Он может использовать следующие атрибуты:

minSdkVersion : минимальная поддерживаемая версия SDK

targetSdkVersion : оптимальная версия

maxSdkVersion : максимальная версия

Версия определяется номером API, например, Jelly Beans 4.1 имеет версию 16, а Android 11 имеет версию 30:

Установка разрешений

Иногда приложению требуются разрешения на доступ к определенным ресурсам, например, к списку контактов, камере и т.д. Чтобы приложение могло работать с тем же списком контактов, в файле манифесте необходимо установить соответствующие разрешения. Для установки разрешений применяется элемент :

По теме:  Что происходит с нашим климатом 2011

Атрибут android:name устанавливает название разрешения: в данном случае на чтение списка контактов и использование камеры. Опционально можно установить максимальную версию sdk посредством атрибута android:maxSdkVersion , который принимает номер API.

Поддержка разных разрешений

Мир устройств Android очень сильно фрагментирован, здесь встречаются как гаджеты с небольшим экраном, так и большие широкоэкранные телевизоры. И бывают случаи, когда надо ограничить использование приложения для определенных разрешений экранов. Для этого в файле манифеста определяется элемент :

Данный элемент принимает четыре атрибута:

android:largeScreens — экраны с диагональю от 4.5 до 10″

android:normalScreens — экраны с диагональю от 3 до 4.5″

android:smallScreens — экраны с диагональю меньше 3″

android:xlargeScreens — экраны с диагональю больше 10″

Если атрибут имеет значение true , то приложение будет поддерживаться соответствующим размером экрана

Запрет на изменение ориентации

Приложение в зависимости от положения гаджета может находиться в альбомной и портретной ориентации. Не всегда это бывает удобно. Мы можем сделать, чтобы приложение вне зависимости от поворота гаджета использовало только одну ориентацию. Для этого в файле манифеста у требуемой activity надо установить атрибут android:screenOrientation . Например, запретим альбомную ориентацию:

Значение android:screenOrientation=»portrait» указывает, что данная activity будет находиться только в портретной ориентации. Если же надо установить только альбомную ориентацию, тогда надо использовать значение android:screenOrientation=»landscape»

Источник

Файл манифеста AndroidManifest.xml

Файл манифеста AndroidManifest.xml предоставляет основную информацию о программе системе. Каждое приложение должно иметь свой файл AndroidManifest.xml. Редактировать файл манифеста можно вручную, изменяя XML-код или через визуальный редактор Manifest Editor (Редактор файла манифеста), который позволяет осуществлять визуальное и текстовое редактирование файла манифеста приложения.

Назначение файла

  • объявляет имя Java-пакета приложения, который служит уникальным идентификатором;
  • описывает компоненты приложения — деятельности, службы, приемники широковещательных намерений и контент-провайдеры, что позволяет вызывать классы, которые реализуют каждый из компонентов, и объявляет их намерения;
  • содержит список необходимых разрешений для обращения к защищенным частям API и взаимодействия с другими приложениями;
  • объявляет разрешения, которые сторонние приложения обязаны иметь для взаимодействия с компонентами данного приложения;
  • объявляет минимальный уровень API Android, необходимый для работы приложения;
  • перечисляет связанные библиотеки;

Общая структура манифеста

Файл манифеста инкапсулирует всю архитектуру Android-приложения, его функциональные возможности и конфигурацию. В процессе разработки приложения вам придется постоянно редактировать данный файл, изменяя его структуру и дополняя новыми элементами и атрибутами.

Корневым элементом манифеста является . Помимо данного элемента обязательными элементами является теги и . Элемент является основным элементом манифеста и содержит множество дочерних элементов, определяющих структуру и работу приложения. Порядок расположения элементов, находящихся на одном уровне, произвольный. Все значения устанавливаются через атрибуты элементов. Кроме обязательных элементов, упомянутых выше, в манифесте по мере необходимости используются другие элементы.

Описание

Элемент является корневым элементом манифеста. По умолчанию Eclipse создает элемент с четырьмя атрибутами:

Атрибуты

объявляет разрешение, которое используется для ограничения доступа к определенным компонентам или функциональности данного приложения. В этой секции описываются права, которые должны запросить другие приложения для получения доступа к вашему приложению. Приложение может также защитить свои собственные компоненты (деятельности, службы, приемники широковещательных намерений и контент-провайдеры) разрешениями. Оно может использовать любое из системных разрешений, определенных Android или объявленных другими приложениями, а также может определить свои собственные разрешения.

android:name название разрешения android:label имя разрешения, отображаемое пользователю android:description описание разрешения android:icon значок разрешения android:permissionGroup определяет принадлежность к группе разрешений android:protectionLevel уровень защиты

Элемент запрашивает разрешение, которые приложению должны быть предоставлены системой для его нормального функционирования. Разрешения предоставляются во время установки приложения, а не во время его работы.

По теме:  Владимиро суздальское княжество географическое положение особенности политического развития

android:name имеет единственный атрибут с именем разрешения android:name. Это может быть разрешение, определенное в элементе

данного приложения, разрешение, определенное в другом приложении или одно из стандартных системных разрешений, например: android:name=»android.permission.CAMERA» или android:name=»»android.permission.READ_CONTACTS»

Наиболее распространенные разрешения

  • INTERNET — доступ к интернету
  • READ_CONTACTS — чтение (но не запись) данных из адресной книги пользователя
  • WRITE_CONTACTS — запись (но не чтение) данных из адресной книги пользователя
  • RECEIVE_SMS — обработка входящих SMS
  • ACCESS_COARSE_LOCATION — использование приблизительного определения местонахождения при помощи вышек сотовой связи или точек доступа Wi-Fi
  • ACCESS_FINE_LOCATION — точное определение местонахождения при помощи GPS

объявляет базовое имя для дерева разрешений. Этот элемент объявляет не само разрешение, а только пространство имен, в которое могут быть помещены дальнейшие разрешения.

определяет имя для набора логически связанных разрешений. Это могут быть как объявленные в этом же манифесте с элементом

разрешения, так и объявленные в другом месте. Этот элемент не объявляет разрешение непосредственно, только категорию, в которую могут быть помещены разрешения. Разрешение можно поместить в группу, назначив имя группы в атрибуте permissionGroup элемента

Источник

Работа с манифестом Android

AndroidManifest.xml — это мощный файл на платформе Android, который позволяет описать функциональные возможности и требования приложения к Android. Тем не менее, работа с ним не является простой. Xamarin.Android помогает свести к минимуму эту трудность, позволяя добавлять настраиваемые атрибуты в классы, которые затем будут использоваться для автоматического создания манифеста. Наша цель заключается в том, что 99% пользователей никогда не должны вручную изменять AndroidManifest.xml.

AndroidManifest.xml создается как часть процесса сборки, а XML-код, найденный в свойствах или AndroidManifest.xml , объединяется с XML, созданным из пользовательских атрибутов. Результирующий объединенный AndroidManifest.xml находится в подкаталоге obj ; например, он находится в obj/Debug/android/AndroidManifest.xml для сборок отладки. Процесс слияния прост: он использует настраиваемые атрибуты в коде для создания XML-элементов и вставляет эти элементы в AndroidManifest.xml.

Основы

Во время компиляции сборки проверяются на наличие классов, abstract не являющихся производными от действия , и [Activity] атрибут объявляется на них. Затем для создания манифеста используются эти классы и атрибуты. Рассмотрим следующий пример кода:

Это приводит к тому, что в AndroidManifest.xmlне создается ничего. Если требуется создать элемент, необходимо использовать [Activity] настраиваемый атрибут:

Этот пример приводит к добавлению следующего фрагмента XML в AndroidManifest.xml:

Атрибут [Activity] не влияет на abstract типы; abstract типы игнорируются.

Activity Name

Начиная с версии Xamarin.Android 5.1 имя типа действия основано на MD5SUM имени экспортируемого типа. Это позволяет предоставить одно и то же полное имя из двух разных сборок и не получить ошибку упаковки. (До Xamarin.Android 5.1 имя типа действия по умолчанию было создано из нижнего регистра пространства имен и имени класса.)

Если вы хотите переопределить это значение по умолчанию и явно указать имя действия, используйте Name свойство:

В этом примере создается следующий фрагмент XML:

Свойство следует использовать Name только по причинам обратной совместимости, так как такое переименование может замедлить поиск типов во время выполнения. Если у вас есть устаревший код, который ожидает, что имя типа по умолчанию действия будет основано на нижнем регистре пространства имен и имени класса, см. в статье Об именовании вызываемого оболочки Android , чтобы получить советы по поддержанию совместимости.

Строка заголовка действия

По умолчанию Android предоставляет приложению строку заголовка при запуске. Для этого используется /manifest/application/activity/@android:label значение . В большинстве случаев это значение будет отличаться от имени класса. Чтобы указать метку приложения в заголовке строки, используйте Label свойство. Например:

По теме:  Свойство географической карты 5 класс

В этом примере создается следующий фрагмент XML:

Доступный для запуска из программы выбора приложений

По умолчанию ваше действие не будет отображаться на экране средства запуска приложений Android. Это связано с тем, что в приложении, скорее всего, будет много действий, и вы не хотите значок для каждого из них. Чтобы указать, какой из них должен быть запущен из средства запуска приложений, используйте MainLauncher свойство. Например:

В этом примере создается следующий фрагмент XML:

Значок действия

По умолчанию ваше действие будет присвоено значку средства запуска по умолчанию, предоставленному системой. Чтобы использовать пользовательский значок, сначала добавьте .png в ресурсы или рисование, задайте для свойства действие сборки AndroidResource, а затем используйте Icon свойство, чтобы указать используемый значок. Например:

В этом примере создается следующий фрагмент XML:

Разрешения

При добавлении разрешений в манифест Android (как описано в разделе «Добавление разрешений в манифест Android»), эти разрешения записываются в свойства или AndroidManifest.xml. Например, если вы задали INTERNET разрешение, следующий элемент добавляется в properties/AndroidManifest.xml:

Отладочные сборки автоматически задают некоторые разрешения для упрощения отладки (например INTERNET , и READ_EXTERNAL_STORAGE ) — эти параметры задаются только в созданном obj/debug/android/AndroidManifest.xml и не отображаются как включенные в параметрах необходимых разрешений .

Например, при проверке созданного файла манифеста в obj/Debug/android/AndroidManifest.xmlмогут отображаться следующие добавленные элементы разрешений:

В версии сборки выпуска манифеста (в obj/Debug/android/AndroidManifest.xml) эти разрешения не настраиваются автоматически. Если вы обнаружите, что переключение на сборку выпуска приводит к потере приложения разрешения, доступного в сборке отладки, убедитесь, что вы явно задали это разрешение в параметрах необходимых разрешений для приложения (см. раздел «Сборка > приложения Android в Visual Studio для Mac; см. раздел «Свойства > манифеста Android» в Visual Studio).

Дополнительные функции

Действия и компоненты намерения

Манифест Android предоставляет способ описания возможностей вашего действия. Это делается с помощью намерений и [IntentFilter] настраиваемый атрибут. Вы можете указать, какие действия подходят для действия с помощью IntentFilter конструктор, и какие категории подходят дляСвойство Categories . Необходимо предоставить по крайней мере одно действие (поэтому действия предоставляются в конструкторе). [IntentFilter] может быть предоставлено несколько раз, и каждое использование приводит к отдельному элементу внутри . Например:

В этом примере создается следующий фрагмент XML:

Элемент Application

Манифест Android также предоставляет способ объявления свойств для всего приложения. Это делается с помощью элемента и его аналога настраиваемого атрибута Application . Обратите внимание, что это параметры на уровне приложения (на уровне сборки), а не параметры для каждого действия. Как правило, вы объявляете свойства для всего приложения, а затем переопределяете эти параметры (по мере необходимости) на основе каждого действия.

Например, следующий Application атрибут добавляется в файл AssemblyInfo.cs , чтобы указать, что приложение можно отлаживать, что его имя, доступное для чтения пользователем, — «Мое приложение«, и что он использует Theme.Light стиль в качестве темы по умолчанию для всех действий:

Это объявление приводит к созданию следующего фрагмента XML в obj/Debug/android/AndroidManifest.xml:

В этом примере все действия в приложении по умолчанию будут использовать Theme.Light стиль. Если для темы Theme.Dialog действия задано значение ,только это действие будет использовать Theme.Dialog стиль, а все остальные действия в приложении будут по умолчанию Theme.Light использовать стиль, заданный в элементе .

В элементе можно настроить множество атрибутов на уровне приложения. Дополнительные сведения об этих параметрах см. в разделе » Общедоступные свойства » applicationAttribute.

Источник

ТОПоГИС
Adblock
detector