Меню Документы
Вход в систему
Облако тэгов
| AndroidManifest.xml - что это и зачем он нужен? |
|
|
| 17.02.2009 10:44 | |
|
<?xml version="1.0" encoding="utf-8"?> |
Несколько особенностей:
- Каждый файл AndroidManifest.xml (как и большинство дляругих xml файлов в Android) включает описание пространства имен
xmlns:android="http://schemas.android.com/apk/res/android", в качестве своего первого элемента. - Большинство манифестов включает одиночный элемент
<application>, который определяет уровень и свойства компонент приложения доступных из пакета. - Любой пакет может быть представлен пользователю как самостоятельная программа, доступной из главноего меню телефона. Для этого нужно что бы в прокете была хотя бы одна деятельность, которая поддерживает действие MAIN и категорию LAUNCHER показанную в примере выше.
Детальное описание структуры файла AndroidManifest.xml file.
- <manifest>
- Корневой элемент, содержащий полное описание вашего пакета. В него могут включаться следующие элементы:
- <uses-permission>
- описывает права необходимые для того что бы ваша программа работала корректно. То есть, если вы в своей программе хотите использовать доступ к данным GPS, то в этой секции вы должны явно это указать, например так: <uses-permission android:name=”android.permission.ACCESS_GPS” /> Манифест может вообще не содержать этот элемент.
- <permission>
- В этой секции описываются права, которые должны запросить другие приложения для доступа к вашему. Манифест может вообще не содержать этот элемент.
- <instrumentation>
- Описывает код компонентов инструментария доступный для тестирования функционала этого или другого приложения. Манифест может вообще не содержать этот элемент.
- <application>
- Корневой элемент содержащий описание компонент уровня приложения
доступных в пакете. Этот элемент может содержать глобальные и/или
значения по умолчанию, такие как иконка программы, название, тема
оформления, необходимые права доступа и тд. Манифест может вообще не
содержать этот элемент. Под ним также могут располагаться ноль или
более других описаний:
- <activity>
- Деятельность это основной компонент приложения взаимодействующий с
пользователем. Первое окно которое видят пользователи при запуске
программы, это и есть деятельность, и большинство других окон будут
реализованы как отдельные деятелньости описанные тэгом <activity>.
Замечание: Каждая деятельность должна иметь собственный тэг <activity> в файле манифеста. Если деятельность не описана в манифесте, то вы не сможете ее запускать. Ваше приложение вызовет ошибку.Для поддержки позднего поиска вашей деятельности, вы можете включить один или более <intent-filter> элементов для описания действий, которые деятельность поддерживает.
- <intent-filter>
- Описывается определенный тип значений намерений, которые компоненты
подерживают в качестве фильтров намерений. В дополнение, различные типы
значений могут быть указаны под этим элементом. Аттрибутымогут быть
указаны для получения уникального названия, иконки или другой
информации для действия которое было описано.
- <action>
- Действие намерений, которое компонент поддерживает.
- <category>
- Категория намерений которое компонент поддерживает.
- <data>
- Указываются поддерживаемые типы: Intent data MIME type, Intent data URI scheme, Intent data URI authority или Intent data URI path.
Вы так же можете ассоциировать один или более компонентов <meta-data> со своей деятельностью, что бы другие клиенты могли получить для поиска дополнительной информации о ней:
- <meta-data>
- Добавляет описание мета информации к вашей деятельности, клиенты которой могут получить ее через ComponentInfo.metaData.
- <receiver>
- Широковещательный приемник (BroadcastReceiver) позволяет приложению узнавать о изменениях с данными или действиями которые случились, даже если программа не запущена. Так же как и <activity>, вы можете указать один или более <intent-filter> или значения <meta-data>, которые получатель поддерживает.
- <service>
- Сервис это компонент который может быть запущен в фоне на произвольное количество времени. Так же как и в теге <activity>, опционально вы можете указать один или более <intent-filter> или <meta-data> элементов, которые поддерживает сервис.
- <provider>
- Провайдер содержимого (ContentProvider) это компонент который управлет доступом к данным вашей программы, предоставляя его другим приложениям. Вы так же можете указать один или более элементов <meta-data>.
Автор: vovkab - Источник: Android Team

