Введение в 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 необходимо прописать
У приложения могут быть свои компоненты с разрешениями для их использования - они задаются через тег
Ссылка для трекбека:Трекбек
http://stepa.name/archives/267/trackback
Комментарии
…
интересн
Автор: WebLogger | 27.11.2009 21:50
…
Интересный пост …
Автор: Сергей | 11.12.2009 09:20
…
Хм …
Автор: Светлана | 21.01.2010 14:46
Шапран Валентина Игоревна…
Шапран Валентина Игоревна …
Автор: Гремислав | 27.04.2010 23:40
Рева Андрей Аркадьевич…
Рева Андрей Аркадьевич …
Автор: Елисей | 12.05.2010 10:51
СПС.…
Я тут…
Автор: Сергей | 26.05.2010 17:07
http://rel” rel=”nofollow”>Хм…..…
Ссылки как то непонятно отображаются…
Автор: Soviet | 08.06.2010 23:49