Androidmanifest xml как редактировать
Перейти к содержимому

Androidmanifest xml как редактировать

  • автор:

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

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

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

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

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

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

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

Описание

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

Атрибуты

xmlns:android определяет пространство имен Android. Оно всегда одно и то же package определяет уникальное имя пакета приложения, которое вы задали при создании проекта. Android Marketplace проверяет уникальность при приеме приложения, поэтому рекомендуется использовать свое имя для избежания конфликтов с другими разработчиками. Например, я использую имя своего сайта в обратном порядке: ru.alexanderklimov.appname android:versionCode указывает на внутренний номер версии, используемый для сравнения версий программы. «versionCode» должен быть целым, и Android Market использует это для определения, предоставили ли вы новую версию, передавая триггеру обновления на устройствах, на которых установлено ваше приложение. Как правило. начинается с 1 и увеличивается на единицу, если вы выпускаете новую версию приложения. android:versionName указывает номер пользовательской версии. Можно использовать строку или строковый ресурс. Этот номер видит пользователь.

Читайте совет Получить номер версии программы

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

Элемент объявляет объект instrumentation, который дает возможность контролировать взаимодействие приложения с системой. Обычно используется при отладке и тестировании приложения и удаляется из release-версии приложения.

Элемент позволяет объявлять совместимость приложения с указанной версией (или более новыми версиями API) платформы Android. Уровень API, объявленный приложением, сравнивается с уровнем API системы мобильного устройства, на который инсталлируется данное приложение.

Атрибуты

android:minSdkVersion определяет минимальный уровень API, требуемый для работы приложения. Система Android будет препятствовать тому, чтобы пользователь установил приложение, если уровень API системы будет ниже, чем значение, определенное в этом атрибуте. Вы должны всегда объявлять этот атрибут, например: android:minSdkVersion=»11″. Вы можете ради интереса установить значение 7, а потом 11 и сравнить внешний вид приложения. Например, у младшей версии не будет отображаться ActionBar. android:maxSDKVersion позволяет определить самую позднюю версию, которую готова поддерживать ваша программа. Ваше приложение будет невидимым в Google Play для устройств с более свежей версией. Рекомендуется устанавливать в том случае, когда вы точно уверены, что приложение не будет корректно работать на новой платформе. targetSDKVersion позволяет указать платформу, для которой вы разрабатывали и тестировали приложение. Устанавливая значение для этого атрибута, вы сообщаете системе, что для поддержки этой конкретной версии не требуется никаких изменений.

Элемент указывает требуемую для приложения аппаратную и программную конфигурацию мобильного устройства. Например, приложение могло бы определить требования обязательного наличия на устройстве физической клавиатуры или USB-nopTa. Спецификация используется, чтобы избежать установки приложения на устройствах, которые не поддерживают требуемую конфигурацию. Если приложение может работать с различными конфигурациями устройства, необходимо включить в манифест отдельные элементы для каждой конфигурации. Вы можете задать любую комбинацию, содержащие следующие устройства

  • reqFiveWayNav — используйте значение true, если приложению требуется устройство ввода, поддерживающее навигацию вверх, вниз, влево, вправо, а также нажатие выделенного элемента. К таким устройствам относятся трекболы и D-pad. В принципе устарело
  • reqHardKeyboard — используйте значение true, если приложению нужна аппаратная клавиатура.
  • reqKeyboardType — позволяет задать тип клавиатуры: nokeys, qwerty, twelvekey, undefined
  • reqNavigation — укажите одно из значений: nonav, dpad, trackball, wheel или undefined, если требуется устройство для навигации
  • reqTouchScreen — если требуется сенсорный экран, то используйте нужное значение из возможных вариантов: notouch, stylus, finger, undefined. Сейчас практически все устройства содержат сенсорный экран, поэтому тоже устарело

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

Элемент объявляет определенную функциональность, требующуюся для работы приложения. Таким образом, приложение не будет установлено на устройствах, которые не имеют требуемую функциональность. Например, приложение могло бы определить, что оно требует камеру с автофокусом. Если устройство не имеет встроенную камеру с автофокусом, приложения не будет инсталлировано.

android.hardware.camera требуется аппаратная камера 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 — задаёт абсолютную верхнюю границу, за пределами которой ваше приложение точно не может быть смаштабировано. В этом случае приложение запускается в режиме совместимости, которую нельзя отключить. Следует избегать подобных ситуаций и разрабатывать макеты для любых экранов.

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

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

Для этого класса зарегистрирован фильтр вызовов, определяющий, что это действие запущено в приложении (действие android:name=«android.intent.action.MAIN»). Определение категории (категория android:name=«android.intent.category.LAUNCHER» ) определяет, что это приложение добавлено в директорию приложений на Android-устройстве. Значения @ направляют файлы ресурсов, которые содержат актуальные значения. Это упрощает работу с разными ресурсами, такими как строки, цвета, значки.

Атрибуты

android:name имя класса. Имя должно включать полное обозначение пакета, но т. к. имя пакета уже определено в корневом элементе , имя класса, реализующего деятельность, можно записывать в сокращенном виде, опуская имя пакета android:label текстовая метка, отображаемая пользователю android:launcMode управление стеком. Подробнее android:parentActivityName В приложениях с API 16 и выше используется эта строка. Она сообщает, какая активность является родительской. Для старых устройств используйте метаданные

android:exported Позволяет или запрещает запускать активность другим приложениям. Если атрибута нет, то по умолчанию равно false и другие приложения не могут запускать вашу активность. Но если у активности есть интент-фильтры, то по умолчанию это значение будет уже равно true. Это может запутать новичков. Поэтому, если вы хотите запретить запуск через сторонние приложения, то явно указывайте нужное значение.

Элемент содержит множество других атрибутов, определяющих разрешения, ориентацию экрана и т. д.

Изменение конфигурации во время выполнения программы

При изменении языка, региона или аппаратной конфигурации Android прерывает работу всех приложений и затем запускает их повторно, перезагружая значения из ресурсов. Подобное поведение не всегда уместно и желательно. Например, некоторые изменения конфигурации (ориентация экрана в пространстве, доступность клавиатуры) могут произойти только лишь из-за того, что пользователь повернул устройство или выдвинул клавиатуру. Вы можете настраивать, каким образом ваше приложение будет реагировать на подобные изменения, обнаруживая их и выполняя собственные действия. Чтобы заставить Активность отслеживать изменения конфигурации при выполнении программы, добавьте в ее узел в манифесте атрибут android:configChanges, указав, какие именно события хотите обрабатывать.

Перечислим некоторые значения, с помощью которых можно описать изменения конфигурации:

  • оrientation — положение экрана изменено с портретного на альбомное (или наоборот);
  • keyboardHidden — клавиатура (или D-pad и другое устройство) выдвинута или спрятана;
  • fontScale — пользователь изменил предпочтительный размер шрифта;
  • locale — пользователь выбрал новые языковые настройки;
  • keyboard — изменился тип клавиатуры; например, телефон может иметь 12-клавишную панель, при повороте которой появляется полноценная клавиатура. Или была подключена внешняя клавиатура.
  • touchscreen или navigation — изменился тип клавиатуры или способ навигации. Как правило, такие события не встречаются.
  • mcc или mnc — обнаружена новая SIM-карта, при этом изменились страна и код сотовой сети соответственно.
  • uiMode — изменился режим пользовательского интерфейса, например, при переключении между автомобильным, дневным и ночным режимами.
  • screenLayout — изменились характеристики экрана, например, при активации другого дисплея.
  • screenSize — изменлись размеры экрана, например, при смене ориентации. Появилось в Android 3 (API 12)
  • smallestScreenSize — изменился физический размер экрана, например, при подключении внешнего дисплея. Появилось в Android 3 (API 12)

В некоторых случаях одновременно будут срабатывать несколько событий. Например, когда пользователь выдвигает клавиатуру, большинство устройств генерируют события keyboardHidden и orientation. Вы можете выбирать несколько событий, которые хотите обрабатывать самостоятельно, разделяя их символом |.

Наличие атрибута android:configChanges отменяет перезапуск приложения при заданных изменениях конфигурации. Вместо этого внутри активности срабатывает метод onConfigurationChanged(). Переопределите его, чтобы появилась возможность обрабатывать изменения в конфигурации. Используйте переданный объект Configuration, чтобы получить новые значения. Не забудьте вызвать одноименный метод из родительского класса и перезагрузить измененные значения со всех ресурсов, которые используются внутри активности.

 @Override public void onConfigurationChanged(Configuration _newConfig) < super.onConfigurationChanged(_newConfig); [ . Обновите пользовательский интерфейс, используя данные из ресурсов . ] if (_newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) < [ . Реакция на измененную ориентацию экрана . ] >if (_newConfig.keyboardHidden == Configuration.KEYBOARDHIDDEN_NO) < [ . Реакция на выдвигание/задвигание клавиатуры . ] >> 

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

Любые изменения конфигурации, которые не были явно помечены для обработки внутри вашего приложения, приведут к перезапуску активности, минуя вызов метода onConfigurationChanged().

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

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

Элемент определяет категорию компонента, которую должно обработать намерение. Это строковые константы, определенные в классе intent, например:

Элемент добавляет спецификацию данных к фильтру намерений. Спецификация может быть только типом данных (атрибут mimeType), URI или ТИПОМ данных вместе с URI. Значение URI определяется отдельными атрибутами для каждой из его частей, т. е. URI делитСЯ на части: android:scheme, android:host, android:port, android:path или android:pathPrefix, android:pathPattern.

Элемент определяет пару «имя-значение» для элемента дополнительных произвольных данных, которыми можно снабдить родительский компонент. Составляющий элемент может содержать любое число элементов .

Элемент — это псевдоним для Activity, определенной в атрибуте targetActivity. Целевая деятельность должна быть в том же самом приложении, что и псевдоним, и должна быть объявлена перед псевдонимом деятельности в манифесте. Псевдоним представляет целевую деятельность как независимый объект. У псевдонима может быть свой собственный набор фильтров намерений, определяющий, какие намерения могут активизировать целевую деятельность и как система будет обрабатывать эту деятельность. Например, фильтры намерений на псевдониме деятельности могут определить флаги android:name=»android.intent.action.MAIN» и android:name=»android.intent.category.LAUNCHER», заставляя целевую деятельность загружаться при запуске приложения даже в том случае, когда в фильтрах намерений на целевой деятельности эти флаги не установлены.

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

В Android 11 появилась новая запись для работы службы в режиме Foreground (активное состояние).

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

Элемент объявляет контент-провайдера (источник данных) для управления доступом к базам данных. Все контент-провайдеры, которые являются частью приложения, должны быть представлены в элементах в файле манифеста. Если они не объявлены, они не будут работать, т.к. система их не сможет увидеть. Элемент содержит свой набор дочерних элементов для установления разрешений доступа к данным:

Этот элемент имеет много атрибутов, определяющих имя, доступность, разрешения, процесс и т. д.

Элемент является дочерним элементом для . Он определяет, для кого можно предоставить разрешения на подмножества данных контент-провайдера. Предоставление разрешения является способом допустить к подмножеству данных, предоставляемым контент-провайдером, клиента, у которого нет разрешения для доступа к полным данным. Если атрибут granturiPermissions контент-провайдера имеет значение true, то разрешение предоставляется для любых данных, поставляемых контент-провайдером. Однако, если атрибут поставлен в false, разрешение можно предоставить только подмножествам данных, которые определены этим элементом. Контент-провайдер может содержать любое число элементов .

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

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

Как редактировать AndroidManifest.xml, если он пересоздается при сборке?

Решил прописать в AndroidManifest.xml портретную ориентацию экрана.

Для этого нужно в файле AndroidManifest.xml найти свойство:

android:screenOrientation="unspecified"

и установить его значение в «portrait».

Сам файл AndroidManifest.xml я нашел в каталоге

../build-GeoPosition-Android_armeabi_v7a_GCC_4_9_Qt_Qt_5_9_2_for_Android_armv7-Debug/android-build

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

Вопрос: как редактировать файл AndroidManifest.xml так, чтобы настройки в нем сохранялись даже при пересборке проекта?

Редактор файла AndroidManifest. xml ADT-плагина

Для файла манифеста AndroidManifest. xml ADT-плагин также предоставляет визуальный графический редактор.

Редактор файла AndroidManifest. xml ADT-плагина имеет вкладки Manifest, Application, Permissions, Instrumentation и AndroidManifest. xml.

Набор опций вкладок Manifest и Application зависит от версии Android-платформы, на основе которой создан Android-проект.

Вкладка Manifest ADT-редактора файла AndroidManifest. xml содержит следующие поля и ссылки:

Package – редактирование имени пакета Android-приложения, значение атрибута package элемента .

Version Code – редактирование версии Android-приложения, значение атрибута android: versionCode элемента .

Version name – редактирование строки, представляющей пользователю версию Android-приложения, значение атрибута android: versionName элемента .

Shared user id – если данное приложение является одним из модулей большого Android-приложения, установка данного идентификатора одинаковым для всех модулей с подписанием их одним сертификатом дает взаимный доступ к данным, значение атрибута android: sharedUserId элемента .

Shared user label – отображаемая пользователю метка sharedUserId-идентификатора, значение атрибута android: sharedUserLabel элемента .

Раздел Manifest Extras – с помощью кнопки Add обеспечивает добавление в манифест следующих тэгов:

(элемент Uses Sdk) – указывает совместимость с версиями Android-платформы.

(элемент Supports Screens) – указывает поддержку Android-приложением различных экранов.

(элемент Uses Configuration) – указывает, какие опции устройства требуются для работы Android-приложения.

(элемент Uses Feature) – указывает для других Android-приложений, от какой опции устройства зависит работа данного Android-приложения.

(элемент Protected Broadcast) – указывает Broadcasts-сообщения, которые может посылать только Android-система.

(элемент Compatible Screens) – указывает для Android Market совместимость приложения с конфигурациями экрана, используя тэги (элемент Screen кнопки Add).

(элемент Original Package) – предназначен только для системных приложений.

(элемент Package Verifier) – указывает имя пакета приложения, которое вызывается PackageManager-сервисом при инсталляции данного приложения. PackageManager-сервис посылает Broadcast-сообщение ACTION_PACKAGE_NEEDS_VERIFICATION указываемому пакету, который должен содержать BroadcastReceiver-компонент для верификации инсталляции.

Exporting – содержит ссылки Use the Export Wizard и Export an unsigned APK, запускающие опции экспорта подписанного и неподписанного для публикации Android-приложения.

Links – содержит ссылки Application (открывает вкладку Application редактора), Permission (открывает вкладку Permission редактора), Instrumentation (открывает вкладку Instrumentation редактора), XML Source (открывает вкладку AndroidManifest. xml редактора), Documentation (пытается открыть локализованную страницу документации).

Вкладка Application ADT-редактора файла AndroidManifest. xml помогает редактировать тэг файла манифеста с помощью разделов Application Toggle, Application Attributes и Application Nodes.

Раздел Application Toggle вкладки Application содержит ссылку application – открывает страницу документации элемента и флажок Define an tag in the AndroidManifest. xml – включает элемент в файл манифеста.

Раздел Application Attributes вкладки Application определяет атрибуты элемента с помощью следующих полей и списков:

Name – при нажатии открывает мастер создания Java-класса, расширяющего класс android. app. Application. Созданный Application-класс указывается в качестве значения атрибута android: name тэга . Если приложение содержит несколько Activity-компонентов, решить проблему обеспечения для них общих глобальных в рамках приложения данных и сервисов поможет Application-класс. При запуске приложения Android-система создаст единственный экземпляр Application-класса и будет вызывать его методы жизненного цикла. Рекомендуется реализовать Application-класс как Singleton-класс со статическим доступом к глобальным данным и сервисам.

Theme – общий для Activity-компонентов стиль, указываемый как значение атрибута android: theme тэга . Предварительно необходимо создать ресурсный файл каталога res/values со стилем, используя команду New | Other | Android | Android XML Values File контекстного меню окна Package Explorer, дополнить его тэгом , нажать кнопку Browse поля Theme и выбрать созданный ресурс – в результате у тэга появится атрибут android: theme.

Label – отображаемое пользователю имя приложения, указываемое значением атрибута android: label тэга . Кнопка Browse поля Label позволяет выбрать значение атрибута в ресурсном файле каталога res/values, содержащем тэги .

Icon – значок приложения, определяемый значением атрибута android: icon тэга . Кнопка Browse поля Icon позволяет выбрать значение атрибута как имя файла изображения, расположенного в каталоге res/drawable. Папки drawable могут иметь спецификаторы ldpi, mdpi, hdpi, xhdpi, nodpi и tvdpi, обеспечивающие отображение значка на экранах с различной плотностью.

Logo – определяет значение атрибута android: logo тэга , указывающего логотип приложения для отображения в панели ActionBar.

Description – краткое описание приложения, которое указывается значением атрибута android: description тэга и должно определяться ссылкой на строковый ресурс. Кнопка Browse поля Description позволяет выбрать значение атрибута в ресурсном файле каталога res/values, содержащем тэги .

Permission – список позволяет выбрать разрешение, которое должно иметь стороннее Android-приложение для взаимодействия с данным Android-приложением в целом, указывается значением атрибута android: permission тэга .

Process – определяет значение атрибута android: process тэга , указывающего имя процесса приложения. Если данное приложение является одним из модулей большого Android-приложения, которые имеют одинаковый sharedUserId-идентификатор и подписаны одним сертификатом, тогда установка значения атрибута android: process одинаковым для всех модулей обеспечивает их запуск в одном процессе.

Task affinity – определяет значение атрибута android: taskAffinity тэга , указывающего имя задачи для всех Activity-компонентов приложения, по умолчанию – имя пакета приложения. Task-задача представляет собой набор Activity-компонентов, с которыми пользователь взаимодействует для выполнения своей задачи, при этом Activity-компоненты задачи организуются в обратный стек, в порядке, в котором каждый Activity-компонент был запущен другим Activity-компонентом.

Allow task reparenting – определяет значение атрибута android: allowTaskReparenting тэга – если true, тогда Activity-компоненты приложения могут перемещаться из задачи, которая их запустила, в задачу переднего плана, с которой Activity-компоненты имеют общее taskAffinity-значение, по умолчанию false.

Has code – определяет значение атрибута android: hasCode тэга – если false, тогда приложение не содержит Java-кода, а полностью реализовано на основе программного интерфейса NDK API, по умолчанию true.

Persistent – определяет значение атрибута android: persistent тэга – если true, тогда приложение работает до тех пор, пока работает устройство, обычно используется системными приложениями, по умолчанию false.

Enabled – определяет значение атрибута android: enabled тэга – если false, тогда Android-система не может создавать экземпляры компонентов приложения, по умолчанию true.

Debuggable – определяет значение атрибута android: debuggable тэга . Android-инструменты сборки ADT-плагина автоматически добавляют значение атрибута true в отладочном режиме и удаляют данный атрибут, имеющий по умолчанию значение false, при экспорте релиза приложения.

Vm safe mode – определяет значение атрибута android: vmSafeMode тэга – если true, тогда JIT-оптимизация отключается.

Hardware accelerated – определяет значение атрибута android: hardwareAccelerated тэга – если true, тогда включается аппаратное ускорение визуализации, по умолчанию false.

Manage space activity – определяет значение атрибута android: manageSpaceActivity тэга , указывает имя Activity-компонента, который запускается дополнительной кнопкой Управление местом в разделе настроек Приложения | Управление приложениями Android-устройства.

Allow clear user data – определяет значение атрибута android: allowClearUserData тэга – применимо только для системных приложений, для обычных приложений игнорируется.

Test only – определяет значение атрибута android: testOnly тэга – если true, тогда приложение находится в стадии тестирования и не может быть инсталлировано в Android-устройстве.

Backup agent – определяет значение атрибута android: backupAgent тэга , указывает имя класса, расширяющего класс android.app.backup.BackupAgent, который вызывается сервисом Backup Manager для определения настроек приложения, сохраняемых в облачном хранилище, и их восстановления при реинсталляции приложения в случае обновления Android-системы устройства.

Allow backup – определяет значение атрибута android: allowBackup тэга – если false, тогда приложение не обслуживается сервисом Backup Manager, по умолчанию true.

Kill after restore – определяет значение атрибута android: killAfterRestore тэга – используется системными приложениями.

Restore needs application – определяет значение атрибута android: restoreNeedsApplication тэга – используется системными приложениями.

Restore any version – определяет значение атрибута android: restoreAnyVersion тэга – если true, тогда сервис Backup Manager будет восстанавливать приложение даже в том случае, если версии облачного хранилища и текущей инсталляции не совпадают, по умолчанию false.

Never encrypt – определяет значение атрибута android: neverEncrypt тэга – если true, тогда приложение отказывается от защиты хранения своих данных.

Large heap – определяет значение атрибута android: largeHeap тэга – если true, тогда приложению может понадобиться расширение размера кучи.

Cant save state – определяет значение атрибута android: cantSaveState тэга – если true, тогда приложение является ресурсоемким и отказывается участвовать в сохранении-восстановлении Android-системой своего состояния. При таком работающем приложении, если пользователь пытается загрузить другое приложение, он запрашивается на выход из первого приложения.

Ui options – определяет значение атрибута android: uiOptions тэга , указывающее дополнительные опции GUI-интерфейса Activity-компонентов приложения с помощью двух значений: none (по умолчанию, нет дополнительных опций) и splitActionBarWhenNarrow (добавляет панель ActionBar, разделенную на секцию навигации и панель действий).

Supports rtl – определяет значение атрибута android: supportsRtl тэга – если true, тогда приложение поддерживает right-to-left (RTL) письменность справа налево.

Раздел Application Nodes вкладки Application кнопкой Add обеспечивает добавление в тэг тэгов (элемент Activity), (элемент Activity Alias), (элемент Meta Data), (элемент Provider), (элемент Receiver), (элемент Service), (элемент Uses Library).

Кнопка Add позволяет добавлять в тэги , и тэги (элемент Intent Filter) и (элемент Meta Data), при этом в тэг могут добавляться кнопкой Add тэги (элемент Action), (элемент Category), (элемент Data).

В тэг кнопка Add добавляет тэги (элемент Grant Uri Permission), (элемент Meta Data), (элемент Path Permission).

Тэг (элемент Activity) описывает Activity-компонент приложения (класс, расширяющий класс android.app.Activity). При выборе элемента Activity кнопкой Add, во вкладке Application появляется раздел Attributes for Activity, позволяющий определить атрибуты тэга с помощью следующих полей и списков:

Name – при нажатии открывает мастер создания Java-класса, расширяющего класс android.app.Activity. Созданный Activity-компонент указывается в качестве значения атрибута android: name.

Theme – определяет для Activity-компонента стиль, указываемый как значение атрибута android: theme.

Label – отображаемая пользователю метка Activity-компонента, указываемая значением атрибута android: label.

Icon – значок Activity-компонента, определяемый значением атрибута android: icon.

Logo – определяет значение атрибута android: logo, указывающего логотип приложения для отображения в панели ActionBar.

Launch mode – список позволяет выбрать значение атрибута android: launchMode, определяющего загрузку Activity-компонента при получении вызывающего Intent-объекта:

standart (по умолчанию) – Android-система всегда создает новый экземпляр Activity-компонента в целевой задаче и передает ему Intent-объект.

singleTop – если экземпляр Activity-компонента уже существует на переднем плане целевой задачи, вызывается метод onNewIntent () уже существующего экземпляра, вместо создания нового экземпляра Activity-компонента.

singleTask – Android-система создает новый экземпляр Activity-компонента в новой задаче и передает ему Intent-объект. Если экземпляр Activity-компонента уже существует, тогда вызывается его метод onNewIntent (), вместо создания нового экземпляра Activity-компонента.

singleInstance – работает аналогично singleTask, за исключением того, что задача может содержать только один Activity-компонент.

Screen orientation – список позволяет выбрать значение атрибута android: screenOrientation, определяющего ориентацию отображения Activity-компонента на экране:

unspecified (по умолчанию) – ориентацию выбирает Android-система.

user – ориентация определяется пользовательскими предпочтениями.

behind – ориентация такая же, как и у предыдущего Activity-компонента.

landscape – альбомная (горизонтальная) ориентация.

portrait – портретная (вертикальная) ориентация.

reverseLandscape – альбомная (горизонтальная) ориентация в противоположном направлении.

reversePortrait – портретная (вертикальная) ориентация в противоположном направлении.

sensorLandscape – альбомная (горизонтальная) ориентация, направление которой определяется Android-системой на основе сенсора.

sensorPortrait – портретная (вертикальная) ориентация, направление которой определяется Android-системой на основе сенсора.

sensor – ориентация определяется Android-системой на основе сенсора.

fullSensor – ориентация определяется Android-системой на основе сенсора с возможностью ориентаций landscape, portrait, reverseLandscape и reversePortrait.

nosensor – сенсор устройства игнорируется.

Config changes – кнопка Select позволяет выбрать значение атрибута android: configChanges, определяющего изменения конфигурации, при которых Activity-компонент не перезапускается, а вызывается его метод onConfigurationChanged ():

mcc – изменение MCC-кода страны.

mnc – изменение MNC-кода сети.

locale – изменение локализации устройства.

touchscreen – изменение сенсорного экрана.

keyboard – изменение типа клавиатуры устройства.

keyboardHidden – изменение доступности клавиатуры.

navigation – изменение механизма навигации устройства.

screenLayout – изменение компоновки экрана.

fontScale – изменение размера шрифта.

uiMode – изменение состояния устройства (устройство помещено в держатель).

orientation – изменилась ориентация экрана.

screenSize – при изменении ориентации экрана изменились пропорции экрана.

smallestScreenSize – при подключении устройства к внешнему дисплею изменился размер экрана.

Permission – список позволяет выбрать разрешение, которое должно иметь стороннее Android-приложение для вызова Activity-компонента, указывается значением атрибута android: permission.

Multiprocess – определяет значение атрибута android: multiprocess – если true, тогда Activity-компонент запускается в том же процессе, что и вызвавший его Android-компонент.

Process – определяет значение атрибута android: process, указывающего имя процесса, в котором запускается Activity-компонент.

Task affinity – определяет значение атрибута android: taskAffinity, указывающего имя задачи, в которой запускается Activity-компонент с флагом FLAG_ACTIVITY_NEW_TASK.

Allow task reparenting – определяет значение атрибута android: allowTaskReparenting – если true, тогда Activity-компонент может перемещаться из задачи, которая его запустила, в задачу переднего плана, с которой Activity-компонент имеет общее taskAffinity-значение, по умолчанию false.

Finish on task launch – определяет значение атрибута android: finishOnTaskLaunch – если true, тогда существующий экземпляр Activity-компонента уничтожается, если пользователь снова запускает его задачу, по умолчанию false.

Finish on close system dialogs – определяет значение атрибута android: finishOnCloseSystemDialogs – если true, тогда Activity-компонент уничтожается при закрытии текущего окна, например при нажатии кнопки HOME или при блокировке устройства.

Clear task on launch – определяет значение атрибута android: clearTaskOnLaunch – если true, тогда при перезапуске задачи из домашнего экрана, задача очищается от всех Activity-компонентов до данного корневого Activity-компонента, по умолчанию false.

No history – определяет значение атрибута android: noHistory – если true, тогда Activity-компонент удаляется из стека задачи и уничтожается, когда становится невидимым на экране, по умолчанию false.

Always retain task state – определяет значение атрибута android: alwaysRetainTaskState – если true, тогда Android-система не очищает задачу данного корневого Activity-компонента, а сохраняет ее последнее состояние, по умолчанию false.

State not need – определяет значение атрибута android: stateNotNeeded – если true, тогда метод onSaveInstanceState () Activity-компонента не вызывается, а его метод onCreate () в качестве аргумента всегда получает null, по умолчанию false.

Exclude from recents – определяет значение атрибута android: excludeFromRecents – если true, тогда Activity-компонент не появляется в списке недавно запущенных Activity-компонентов, который отображается при долгом нажатии на кнопку HOME устройства, по умолчанию false.

Enabled – определяет значение атрибута android: enabled – если false, тогда Android-система не может создавать экземпляры Activity-компонента, по умолчанию true.

Exported – определяет значение атрибута android: exported – если true, тогда Activity-компонент может запускаться другими Android-приложениями, если false, тогда Activity-компонент может запускаться только Android-компонентами своего приложения или другими модулями с общим sharedUserId-идентификатором.

Window soft input mode – кнопка Select позволяет выбрать значение атрибута android: windowSoftInputMode, определяющего как окно Activity-компонента взаимодействует с окном экранной клавиатуры:

stateUnspecified (по умолчанию) – состояние видимости или нет экранной клавиатуры выбирает Android-система.

stateUnchanged – экранная клавиатура сохраняет свое последнее состояние.

stateHidden – экранная клавиатура скрыта когда пользователь переходит вперед к Activity-компоненту.

stateAlwaysHidden – экранная клавиатура всегда скрыта.

stateVisible – экранная клавиатура появляется когда пользователь переходит вперед к Activity-компоненту.

stateAlwaysVisible – экранная клавиатура всегда появляется.

adjustUnspecified (по умолчанию) – будет окно Activity-компонента изменять свои размеры и включать в себя окно экранной клавиатуры или экранная клавиатура будет накладываться на окно Activity-компонента с его панорамированием определяет Android-система.

adjustResize – окно Activity-компонента изменяет свои размеры и включает в себя окно экранной клавиатуры.

adjustPan – экранная клавиатура накладывается на окно Activity-компонента, которое панорамируется на ввод.

adjustNothing – окно Activity-компонента не изменяет свои размеры и не панорамируется.

Immersive – определяет значение атрибута android: immersive – если true, тогда Activity-компонент не прерывается другими Activity-компонентами и уведомлениями.

Hardware accelerated – определяет значение атрибута android: hardwareAccelerated – если true, тогда включается аппаратное ускорение визуализации, по умолчанию false.

Ui options – определяет значение атрибута android: uiOptions, указывающее дополнительные опции GUI-интерфейса Activity-компонента с помощью двух значений: none (по умолчанию, нет дополнительных опций) и splitActionBarWhenNarrow (добавляет панель ActionBar, разделенную на секцию навигации и панель действий).

Parent activity name – определяет значение атрибута android: parentActivityName, указывающее имя класса Activity-компонента, являющегося логическим родителем данному Activity-компоненту и к которому будет осуществляться переход с помощью кнопки Up.

Тэг (элемент Intent Filter) обеспечивает создание объекта android.content.IntentFilter, который указывает Android-системе какие неявные (не указывающие целевой класс) объекты android.content.Intent может обрабатывать Android-компонент. При выборе элемента Intent Filter кнопкой Add, во вкладке Application появляется раздел Attributes for Intent Filter, позволяющий определить атрибуты тэга с помощью следующих полей:

Label – определяет значение атрибута android: label, указывающего отображаемую пользователю метку Android-компонента, запущенного соответствующим фильтру Intent-объектом.

Icon – определяет значение атрибута android: icon, указывающего значок Android-компонента, запущенного соответствующим фильтру Intent-объектом.

Logo – определяет значение атрибута android: logo, указывающего логотип панели ActionBar Android-компонента, запущенного соответствующим фильтру Intent-объектом.

Priority – определяет значение атрибута android: priority, указывающего приоритет обработки соответствующих фильтру Intent-объектов для случая, когда несколько Android-компонентов соответствуют Intent-объекту.

Дочерний тэг (элемент Action) тэга указывает действие Intent-объекта, поддерживаемое Android-компонентом. При выборе элемента Action кнопкой Add, во вкладке Application появляется раздел Attributes for Action, позволяющий определить атрибут тэга с помощью списка Name, обеспечивающего выбор действия android.intent.action.* как значения атрибута android: name.

Дочерний тэг (элемент Category) тэга указывает, к какому типу принадлежит Android-компонент, чтобы соответствовать категории Intent-объекта. При выборе элемента Category кнопкой Add, во вкладке Application появляется раздел Attributes for Category, позволяющий определить атрибут тэга с помощью списка Name, обеспечивающего выбор категории android.intent.category.* как значения атрибута android: name.

Дочерний тэг (элемент Data) тэга описывает, какие данные могут быть переданы Intent-объектом Android-компоненту. При выборе элемента Data кнопкой Add, во вкладке Application появляется раздел Attributes for Data, позволяющий определить атрибуты тэга с помощью полей Mime type (атрибут android: mimeType указывает MIME-тип данных Intent-объекта), Scheme, Host, Port, Path, Path prefix, Path pattern (URI-адрес данных в формате scheme://host: port/path, атрибуты android: scheme, android: host, android: port, android: path, android: pathPrefix, android: pathPattern).

Тэг (элемент Meta Data) позволяет добавить дополнительные данные к Android-компоненту, доступ к которым можно получить программным способом:

ApplicationInfo ai = getPackageManager().getApplicationInfo(activity.getPackageName (), PackageManager.GET_META_DATA);

Bundle bundle = ai.metaData;

String myValue = bundle.getString («myKey»);

При выборе элемента Meta Data кнопкой Add, во вкладке Application появляется раздел Attributes for Meta Data, позволяющий определить атрибуты тэга с помощью полей Name (атрибут android: name определяет имя элемента метаданных), Value (атрибут android: value определяет значение элемента метаданных), Resource (атрибут android: resource указывает ссылку на ресурс).

Тэг (элемент Activity Alias) обеспечивает запуск целевого Activity-компонента под другим именем, меткой, с другим Intent-фильтром. При выборе элемента Activity Alias кнопкой Add, во вкладке Application появляется раздел Attributes for Activity Alias, позволяющий определить атрибуты тэга с помощью полей и списков:

Name (атрибут android: name указывает псевдоним для целевого Activity-компонента),

Target activity (атрибут android: targetActivity указывает имя целевого Activity-компонента),

Label (атрибут android: label определяет метку псевдонима),

Description (атрибут android: description определяет описание псевдонима),

Icon (атрибут android: icon указывает значок псевдонима),

Logo (атрибут android: logo определяет логотип панели ActionBar),

Permission (атрибут android: permission указывает разрешение, которое должно иметь стороннее Android-приложение для вызова Activity-компонента через псевдоним),

Enabled (атрибут android: enabled указывает возможность создания экземпляра целевого Activity-компонента через псевдоним),

Exported (атрибут android: exported указывает возможность запуска целевого Activity-компонента сторонними Android-приложениями через псевдоним).

Parent activity name – определяет значение атрибута android: parentActivityName, указывающее имя класса Activity-компонента, являющегося логическим родителем данному Activity-компоненту и к которому будет осуществляться переход с помощью кнопки Up.

Тэг (элемент Provider) описывает ContentProvider-компонент приложения (класс, расширяющий класс android.content.ContentProvider), обеспечивающий управление данными приложения. При выборе элемента Provider кнопкой Add, во вкладке Application появляется раздел Attributes for Provider c полями и списками, позволяющий определить атрибуты тэга .

Поле со ссылкой Name при нажатии открывает мастер создания Java-класса, расширяющего класс android.content.ContentProvider. Созданный ContentProvider-компонент указывается в качестве значения атрибута android: name.

Поля Label, Description, Icon, Logo, Process, Permission, Multiprocess, Enabled, Exported элемента Provider работают аналогично соответствующим полям элемента Activity раздела Application Nodes вкладки Application.

Поле Authorities элемента Provider определяет значение атрибута android: authorities тэга , указывающего один или несколько URI-адресов, идентифицирующих для Android-системы ContentProvider-компонент.

Список Syncable определяет значение атрибута android: syncable тэга – если true, тогда данные ContentProvider-компонента синхронизированы с данными сервера.

Поле Read permission и поле Write permission определяют значения атрибутов android: readPermission и android: writePermission, указывающих разрешения, необходимые для чтения и изменения данных ContentProvider-компонента.

Поле Grand URI permissions определяет значение атрибута android: grantUriPermissions – если true, тогда приложению, вызывающему ContentProvider-компонент Intent-объектом с флагами FLAG_GRANT_READ_URI_PERMISSION и FLAG_GRANT_WRITE_URI_PERMISSION, предоставляется одноразовый доступ к данным.

Поле Init order определяет значение атрибута android: initOrder, указывающего номер в очереди инициализации ContentProvider-компонентов приложения.

Дочерний тэг (элемент Grant Uri Permission) тэга указывает URI-адрес ContentProvider-компонента, к которому может быть дан одноразовый доступ стороннему приложению, с помощью полей Path, Path prefix и Path pattern, определяющих значения атрибутов android: path, android: pathPrefix и android: pathPattern.

Дочерний тэг (элемент Path Permission) тэга указывает для URI-адреса ContentProvider-компонента разрешения доступа к его данным сторонним приложениям, используя поля Path, Path prefix, Path pattern, Permission, Read permission, Write permission, определяющих значения атрибутов android: path, android: pathPrefix, android: pathPattern, android: permission, android: readPermission и android: writePermission.

Тэг (элемент Receiver) описывает BroadcastReceiver-компонент приложения (класс, расширяющий класс android.content.BroadcastReceiver), позволяющий обрабатывать Intent-объекты, посылаемые широковещательным способом Android-системой или другими приложениями. При выборе элемента Receiver кнопкой Add, во вкладке Application появляется раздел Attributes for Receiver c полями и списками, позволяющий определить атрибуты тэга . Поле со ссылкой Name при нажатии открывает мастер создания Java-класса, расширяющего класс android.content.BroadcastReceiver. Созданный BroadcastReceiver-компонент указывается в качестве значения атрибута android: name.

Поля Label, Description, Icon, Logo, Process, Permission, Enabled, Exported элемента Receiver работают аналогично соответствующим полям элемента Activity раздела Application Nodes вкладки Application.

Тэг (элемент Service) описывает Service-компонент приложения (класс, расширяющий класс android.app.Service), предназначенный для выполнения продолжительных операций без предоставления GUI-интерфейса. При выборе элемента Service кнопкой Add, во вкладке Application появляется раздел Attributes for Service c полями и списками, позволяющий определить атрибуты тэга . Поле со ссылкой Name при нажатии открывает мастер создания Java-класса, расширяющего класс android.app.Service. Созданный Service-компонент указывается в качестве значения атрибута android: name. Поля Label, Description, Icon, Logo, Process, Permission, Enabled, Exported элемента Service работают аналогично соответствующим полям элемента Activity раздела Application Nodes вкладки Application.

Список Stop with task элемента Service определяет значение атрибута android: stopWithTask тэга – если true, тогда сервис автоматически завершит свою работу при удалении пользователем задачи приложения, по умолчанию false.

Список Isolated process элемента Service определяет значение атрибута android: isolatedProcess – если true, тогда сервис будет работать в изолированном процессе, не имеющим те разрешения, которые даны остальной части приложения.

Тэг (элемент Uses Library) указывает Android-библиотеку, которая требуется для работы приложения. При выборе элемента Uses Library кнопкой Add, во вкладке Application появляется раздел Attributes for Uses Library c полями и списками, позволяющий определить атрибуты тэга . Поле Name определяет значение атрибута android: name, указывающего имя Android-библиотеки, с которой связано приложение, а список Required – значение атрибута android: required – если true (по умолчанию), тогда приложение не может работать и быть инсталлированным без наличия указанной библиотеки в устройстве.

Вкладка Permissions ADT-редактора файла AndroidManifest. xml с помощью кнопки Add обеспечивает добавление в тэг тэгов (элемент Permission), (элемент Permission Group), (элемент Permission Tree), (элемент Uses Permission).

Тэг (элемент Permission) позволяет объявить пользовательское разрешение, которое должно получить стороннее приложение для доступа к Android-компонентам данного приложения. При выборе элемента Permission кнопкой Add, во вкладке Permissions появляется раздел Attributes for Permission c полями и списками, позволяющими определить атрибуты тэга .

Поля Name, Label, Description, Icon и Logo определяют значения атрибутов android: name, android: label, android: description, android: icon и android: logo, указывающих имя, метку, описание, значок и логотип пользовательского разрешения.

Поле Permission group определяет значение атрибута android: permissionGroup, указывающего группу разрешений, к которой относится данное разрешение.

Список Protection level определяет значение атрибута android: protectionLevel, указывающего уровень риска, который несет данное разрешение:

normal – минимальный риск для других приложений, Android-системы, пользователя.

dangerous – может причинить вред пользователю, например, разрешает доступ к данным пользователя.

signature – Android-система даст данное разрешение запрашивающему его приложению, только если запрашивающее разрешение приложение подписано тем же сертификатом, что и данное приложение, которое объявило пользовательское разрешение.

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

system – используется только для системных приложений.

development – разрешения даются только при разработке, но не при инсталляции.

Тэг (элемент Permission Group) объявляет группу пользовательских разрешений. При выборе элемента Permission Group кнопкой Add, во вкладке Permissions появляется раздел Attributes for Permission Group c полями и списками, позволяющими определить атрибуты тэга .

Поля Name, Label, Description, Icon и Logo определяют значения атрибутов android: name, android: label, android: description, android: icon и android: logo, указывающих имя, метку, описание, значок и логотип группы пользовательских разрешений.

Поле Priority определяет значение атрибута android: priority, указывающего приоритет обработки Intent-объекта.

Тэг (элемент Permission Tree) объявляет базовое имя дерева разрешений, которые могут быть добавлены программным способом с помощью метода addPermission () класса android.content.pm.PackageManager. При выборе элемента Permission Tree кнопкой Add, во вкладке Permissions появляется раздел Attributes for Permission Tree c полями, позволяющими определить атрибуты тэга . Поля Name, Label, Icon и Logo определяют значения атрибутов android: name, android: label, android: icon и android: logo, указывающих базовое имя, метку, значок и логотип дерева динамически добавляемых разрешений.

Тэг (элемент Uses Permission) обеспечивает при инсталляции приложения запрос на предоставление ему определенного разрешения, которое указывается атрибутом android: name и может быть выбрано с помощью списка Name раздела Attributes for Uses Permission вкладки Permissions.

Вкладка Instrumentation ADT-редактора файла AndroidManifest. xml с помощью кнопки Add обеспечивает добавление в тэг тэга , который используется в файле манифеста проекта Android-тестирования (основа проекта Android-тестирования создается с помощью мастера Android Test Project).

При открытии в ADT-редакторе специфических для Android-разработки файлов, таких как activity_main. xml, strings. xml и AndroidManifest. xml, в меню Refactor Workbench-окна появляется подменю Android, содержащее опции Android-рефакторинга.

Данный текст является ознакомительным фрагментом.

Файл AndroidManifest.xml

Файл AndroidManifest.xml , который также называется манифестом, включает информацию, которая применяется для выполнения приложения на платформе Android и корректной фильтрации на Google Play.

Благодаря этому можно скрывать приложение от пользователей, просматривающих Google Play и использующих устройства, несовместимые с этим приложением. Например, пользователи устройств без встроенной камеры не смогут получить доступ к приложениям, требующим камеру (это требование указывается в манифесте приложения). Манифест автоматически создается модулем ADT Plugin для Eclipse, и перед загрузкой приложения на Google Play потребуется вручную добавить в манифест необходимую информацию. Манифест, представляющий собой XML-файл, можно редактировать вручную либо с помощью программы Android Manifest Editor. Эта программа включена в состав модуля ADT Plugin для Eclipse.

Чтобы получить доступ к редактору Android Manifest Editor в среде Eclipse, выберите вкладку Packages Explorer (Просмотр пакетов) и дважды щелкните на файле AndroidManifest.xml, находящемся в папке приложения. После этого файл откроется в рабочей среде Eclipse. Выберите вкладку Manifest (Манифест), находящуюся в нижней части страницы рабочей среды, для перехода к странице Manifest General Attributes (Общие атрибуты манифеста). На этой странице следует указать основные сведения о приложении, такие как названия пакетов, номера версий и элементы. В табл. 2.5 перечислены некоторые общие элементы, включенные в манифест. Полный перечень элементов можно найти на веб-сайте developer.android.com.

Как только необходимые сведения будут внесены в манифест, вернитесь на страницу Manifest General Attributes для подготовки приложения к распространению.

Таблица 2.5. Некоторые общие элементы манифеста приложения

Элемент Описание
Uses Feature (Применения свойств) Определяет свойства, используемые приложением.
Protected Broadcast (Защищенная трансляция) Определяет название защищенной трансляции, которая позволяет приложению объявлять, что только оно может отсылать транслированное содержимое
Supports Screens (Поддержка экранов) Определяет физические размеры экрана (Small (маленький), Normal (обычный), Large (большой), XLarge (сверхбольшой), Resizeable (с изменяемыми размерами)) и разрешения экрана (плотность пикселей на экране), поддерживаемые приложением. Для каждого параметра выберите значение true или false
Uses Configuration (Применения конфигурации) Определяет требования к аппаратным средствам со стороны приложения. Этот элемент может принимать следующие значения: Touch screen (Сенсорный экран), Keyboard type (Тип клавиатуры), Hard keyboard (Физическая клавиатура), Navigation (Навигация) (например, трекбол или колесико) или Five way nav key (Пятипозиционная навигационная клавиша) (трекбол или клавиша, с помощью которой можно перемещаться верх, вниз, вправо или влево, а также выбирать элемент на экране)
Uses SDK (Применения SDK) Функции SDK требуются для корректного выполнения приложения (функции, специфичные для платформ Android 2.3, 3.0 и более старших). Обратите внимание, что в результате установки этого флага приложение, разработанное на основе текущей библиотеки Android SDK, может выполняться на устройстве, на котором установлена более ранняя версия SDK. При этом не производится вызов API, не поддерживаемых в этой ранней версии

На вкладке Application (Приложение), находящейся в нижней части окна приложения, определяются специфичные для приложения атрибуты, в том числе пиктограмма, атрибуты описания, разрешения, отладки и ряд других. На вкладке Permissions (Разрешения) определяется, должно ли приложение использовать защищенные свойства устройства (свойства, для доступа к которым требуются разрешения, например написание SMS-сообщений, настройка обоев или доступа к местоположению). Перед установкой приложения Google Play отображает перечень разрешений, требуемых приложением. Следует запрашивать только те разрешения, которые приложение может обрабатывать корректно. Список разрешений приводится на веб-сайте developer.android.com/reference/android/Manifest.permission.html.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *