Введение в Android Manifest

Обзор

Каждое приложение должно иметь файл AndroidManifest.xml (именно с таким именем) в его корневой папке. Манифест содержит информацию о приложении для ОС Android, эта информация необходима системе прежде чем она запустит какой-либо код на исполнение. Среди прочих вещей, манифест делает следующие вещи:

  • Он содержит название пакета Java. Это имя является уникальным идентификатором для приложения.
  • Он описывает компоненты приложения - activities, services, broadcast receivers, и content providers, из которых состоит приложение. Оно содержит имена для классов, которые описывают каждый компонент и описывает условия их использования (к примеру, какие сообщения интент может принимать). Эти описания предоставляют информацию ОС Android о компонентах приложения и о условиях их выполнения.
  • Он определяет какие процессы будут обрабатывать компоненты приложения
  • Он описывает разрешения(permissions), которые необходимы приложению для работы с защищенными частями API и с другими приложениями.
  • А так же содержит разрешения(permissions), которые необходимы для связи с компонентами системы.
  • Содержит списки классов, используемых для профилирования и для получения другой информации о приложении во время исполнения. Эти описания присутствуют только при разработке и тестировании. Перед публикацией они удаляются из манифеста.
  • Он описывает минимальный уровень Android API, необходимый для приложения
  • Он содержит список библиотек, с которыми приложение должно быть слинковано

Структура файла

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

<?xml version="1.0" encoding="utf-8"?>

<manifest>

 <uses-permission />
<permission />
<permission-tree />
<permission-group />

 <instrumentation />

 <uses-sdk />

 <application>

 <activity>
 <intent-filter>
 <action />
 <category />
 <data />
 </intent-filter>
 <meta-data />
 </activity>

 <activity-alias>
 <intent-filter> . . . </intent-filter>
 <meta-data />
 </activity-alias>

 <service>
 <intent-filter> . . . </intent-filter>
 <meta-data/>
 </service>

 <receiver>
 <intent-filter> . . . </intent-filter>
 <meta-data />
 </receiver>
<provider>
 <grant-uri-permission />
 <meta-data />
 </provider>

 <uses-library />
 <uses-configuration />  

 </application>

</manifest>

Правила для файла

  • Обязательны только  <manifest> и <application> элементы
  • Все параметры передаются только через атрибуты
  • Только элементы - между тегов не может быть обычного текста
  • Порядок элементов не важен. Единственное исключение <application-alias> должен следовать за соответствующим <application>
  • Формально аттрибуты не обязательно, но многие элементы имеют обязательные параметры. Смотрите документацию
  • Все, кроме <manifest>, имеют перед параметры, начинающиеся с “android:"
  • Имена классов почти всегда пишутся полностью с именем пакета, ислючение - классы в пакете, который указан в манифесте - их просто можно начинать с точки
  • Имена ресурсов пишутся так: @[package:]type/name, для тем - ?[package:]type/name

Возможности Манифеста

Intent Filters

Интенты - основа метода вызова компонентов приложения. Интент - это некий набор данных. Содержит себе название действия, некоторые его параметры, а так же еще некоторые инструкции.

Система получает интент, создает экземпляр объекта (если нужно), а потом передает в этот объект этот интент.

Для того, что бы компонент мог принять интент существуют intent-filters и они описываются в манифесте тегом <intent-filter>, в котором можно задать условия принятия интента.

Иконки и Текст

Некоторые элементы содержат поля icon, label и description.

К примеру, в permission’е все эти три поля есть. Эти три поля используются тогда, когда необходимо предоставить разрешение приложению и пользователю показываются необходимая иконка и текст.

Permissions

Permission - это способ получить доступ к закрытой части API. Эта защита существует для защиты пользователя от приложения.

Для того, что бы показать, что приложение использует Permission необходимо прописать тег. Эти Permissions показываются, к примеру, при установке приложения.

У приложения могут быть свои компоненты с разрешениями для их использования - они задаются через тег

Трекбек

Ссылка для трекбека:
http://stepa.name/archives/267/trackback

Комментарии

интересн

Интересный пост

Шапран Валентина Игоревна…

Шапран Валентина Игоревна

Рева Андрей Аркадьевич…

Рева Андрей Аркадьевич

http://rel” rel=”nofollow”>Хм…..…

Ссылки как то непонятно отображаются…

Post a comment