Файл androidmanifest xml. Android

Друзья теперь каждый может опробовать работу новой ОС Flyme 6, бета-версию системы (6.7.3.3G beta) выложили в открытый доступ, что бы каждый мог скачать.

Модели, которые могут опробовать бета-прошивку Flyme 6: M3 note (M91&L91), M3s, MX6, m2 note, MX5, PRO6, M3 MAX, MX4, m1 note, MX4 PRO, PRO5, U10, m2, PRO 6 PlUS

Для корректной работы ОС требуется установить прошивку с очисткой данных и что бы не потерять данные, скопируйте важные файлы или сделайте .

Прошивка Flyme 6.7.3.3G beta — первая публичная версия (тестовая) , в ней могут встречаться баги и не стабильная работа, поэтому всегда можно откатиться назад до версии Flyme 5, но только с галочкой «очистка данных».

Для тех кто не знает как установить прошивку вручную с помощью Recovery, ознакомьтесь с .

Список изменений

Система:
· Обновление до Flyme 6.
· Переименование Hot Apps на App Store
· Обновление погоды
· Обновление Лаунчера
· Улучшено потребления батареи.
· Улучшено соедениение Bluetooth.
· Обновление версии видео плагина.
· Улучшена стабильность системы.
· Улучшена поддержка языков
· Улучшена совместимость для некоторых сторонних приложений.

Визуализация:
· Новые цветовые схемы для пользовательского интерфейса.
· Измененный шрифт для улучшения читаемости.

Уведомления:
· Добавлена поддержка уведомлений, которые можно просматривать и воспроизводить из шторки.
· Добавлено управление уведомлениями долгим нажатием.

Домашний экран:
· Новый переключатель: Screen Rec.
· Добавлена поддержка двустороннего длинного экрана скриншотов
· Добавлена возможность открывать экран настроек, длительным нажатием на переключатель.
· Отображение входящих уведомлений таким образом, чтобы они не мешали пользованию.

Диспетчер задач:
· Добавлена поддержка 3-х новых жестов: проведите пальцем влево от правого края, чтобы открыть диспетчер задач; проведите пальцем вверх для удаления, проведите пальцем вниз, чтобы заблокировать или открыть многооконность.
· Использование памяти дисплея Приложения «под задачи карт для более удобного просмотра и контроля.
· Перемещенная вниз кнопка «Очистить все» для досягаемости.

Процессор:
· Добавлен режим игры, который идентифицирует запущенных приложений для повышения производительности в играх, а также отключает жесты с функцией не беспокоить.
· Добавлена возможность сортировки уведомлений по приоритету.
· Добавлен режим интеллектуального сна. .
· Добавлен «смарт-фон», который замораживает или закрывает фоновые приложения.
· Ускорение запуска некоторых приложений по шаблону.

Телефон:
· Добавлена возможность совместного использования контактов с помощью QR-кода.
· Добавлена мультипликационные аватары.
· Добавлена поддержка для группового обмена сообщениями и настройки мелодии звонка для группы контактов.
· Добавлена настройки клавиш, редактирование контактов долгим нажатием.
· Добавлена возможность слияния дубликатов контактов.

Сообщения:
· Отображение сообщений в карточках. Пользователи могут открыть URL или выбрать текст в сообщении.
· Улучшена защита SMS от сторонних приллжений
· Улучшение сжатие сообщений для хранения в памяти.

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

Камера:
· Добавлена функция макияжа.
· Добавлен ряд фильтров.
· Добавлен режим ПОКАДРОВО.
· Улучшено качество записи звука
· экспозиция в отдельном ползунке
· Добавлена возможность запуска камеры с помощью двойного щелчка кнопки Home, когда экран выключен.

Галерея:
· Добавлена поддержка для редактирования видео.
· Добавлен альбом для панорамы
· Потяните вниз на экране списка фотографий для просмотра всего количества фото и видео хранящихся в галерее.
· Проведите пальцем вниз на открытую фотографию, чтобы вернуться к списку фотографий.
· Нажмите «Изменить размер» на деталях изображения, чтобы настроить разрешение фотографий.
· Добавлен новый интерфейс обмена фотографиями, позволяя пользователям продолжить выбор фотографий на экране обмена.

Безопасность:
· Добавлена новая очистка
· Добавлен контроль доступа к сети сторонними приложениями
· Добавлен режим пониженного энергопотребления.
· Оптимизированный супер эконом режим
· Улучшение управление питанием

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

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

Структура файла манифеста

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

. . . . . . . . .

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

Соглашения о компонентах файла

Ко всем элементам и атрибутам из файла манифеста применяется рад соглашений и правил:

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

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

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

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

За исключением некоторых атрибутов корневого элемента , имена всех атрибутов должны начинаться с префикса android: — например, android:alwaysRetainTaskState . Поскольку этот префикс является универсальным, в документации при указании атрибутов по имени он обычно опускается.

Объявление имен классов Многие элементы соответствуют объектам Java, в том числе элементы для самого приложения (элемент ) и основных его компонентов — операций (), служб (), приемников широковещательных сообщений () и поставщиков контента ().

Если вы определяете подкласс, а это практически всегда делается для классов компонентов ( , и ), выполняется это с помощью атрибута name . В состав имени должно входить полное обозначение пакета. Например, подкласс можно объявить следующим образом:

. . . . . .

Однако его можно укоротить. Если первым символом в строке указать точку, эта строка будет добавляться к имени пакета приложения (указанного атрибутом элемента ). Следующее назначение является таким же, как приведенное выше:

. . . . . .

При запуске компонента Android создает экземпляр подкласса, указанного по имени. Если подкласс не указан, система создает экземпляр базового класса.

Несколько значений Если можно указать несколько значений, элемент почти всегда приводится повторно. Делается это вместо перечисления нескольких значений в одном элементе. Например, в фильтре Intent может быть перечислено несколько действий: . . . Значения ресурсов Значения некоторых атрибутов могут отображаться на экране — например, метка и значок операции. Значения этих атрибутов следует локализовать, поэтому они должны задаваться в ресурсе или теме. Значения ресурсов выражаются в следующем формате:

@[пакет:]тип:имя

где имя пакета можно опустить, если ресурс находится в одном пакете с приложением, тип - это тип ресурса, — например "string" или "drawable", — а имя - это имя, определяющее ресурс. Например:

Значения из темы выражаются схожим образом, только в начале у них идет " ? ", а не " @ ":

?[пакет:]тип:имя

Строковые значения Когда значением атрибута является строка, следует использовать двойную обратную косую черту (" \\ ") для выделения управляющей последовательности символов, — например " \\n " для новой строки или " \\uxxxx " для символа Юникода.

Отображение функций в файле

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

Фильтры объектов Intent

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

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

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

Сведения о том, каким образом объекты Intent проверяются по фильтрам Intent, см. в отдельном документе .

Значки и метки

У ряда элементов есть атрибуты icon и label для небольшого значка и текстовой метки, которые могут отображаться на экране. У некоторых из них также есть атрибут description для более длинного описательного текста, который также может отображаться на экране. Например, элемент имеет все три таких атрибута, поэтому, когда пользователю задается вопрос, предоставить ли разрешение запросившему его приложению, на экране может отображаться значок, представляющий разрешение, имя разрешения и описание того, что оно за собой влечет.

В любом случае значок и метка, заданные в элементе-контейнере, становятся параметрами icon и label , используемыми по умолчанию для всех вложенных в этот контейнер дочерних элементов. Так, значок и метка, заданные в элементе , являются значком и меткой, используемыми по умолчанию для каждого компонента приложения. Точно так же, значок и метка, заданные для компонента, — например элемента , — являются параметрами, используемыми по умолчанию для каждого элемента компонента. Если в элементе задана метка, а в операции и ее фильтре Intent - нет, метка приложения будет считаться меткой и для операции, и для фильтра Intent.

Значок и метка, заданные для фильтра Intent, используются для обозначения компонента, когда он представляется пользователю, для указания функции, которую анонсирует фильтр. Например, фильтр с параметрами " android.intent.action.MAIN " и " android.intent.category.LAUNCHER " сообщает, что эта операция инициирует приложение, — то есть он обозначает ее как операцию, которая должна быть отображена в средстве запуска приложений. Отсюда следует, что значок и метка, заданные в фильтре, отображаются в средстве запуска.

Разрешения

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

Каждое разрешение обозначается уникальной меткой. Зачастую метка обозначает действие, выполнение которого ограничивается. Например, вот некоторые разрешения, определенные системой Android:

android.permission.CALL_EMERGENCY_NUMBERS
android.permission.READ_OWNER_DATA
android.permission.SET_WALLPAPER
android.permission.DEVICE_POWER

Функцию можно защитить не более чем одним разрешением.

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

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

. . . . . .

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

В этом же примере: если атрибут permission был бы задан как разрешение, объявленное где-то еще (например, android.permission.CALL_EMERGENCY_NUMBERS), его бы не нужно было объявлять еще раз с помощью элемента . Однако все равно нужно было бы запрашивать его использование с помощью .

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

Библиотеки

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

Однако некоторые пакеты находятся в собственных библиотеках. Если ваше приложение использует код из одного из таких пакетов, оно должно в явном виде потребовать, чтобы его связали с этим пакетом. Файл манифеста должен содержать отдельный элемент для указания имени каждой библиотеки. (Имя библиотеки можно найти в документации по пакету.)

AndroidManifest.xml – это так называемый «паспорт» любого приложения для ОС Android. Данный файл полностью описывает структуру, составляющие приложения и его требования. «Манифест» нужен любому приложению и для создания любой программы под Android его нужно составить правильно.

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

Итак, AndroidManifest. xml находится в корневой директории приложения и всегда имеет именно такое имя. Всё содержимое данного файла в теге - это корневой тег «манифеста». Например:

package=»com.hello.world»

android:versionCode=»1″

android:versionName=»1.1 Beta»>

Package – название данного программного пакета.

VersionCode – версия приложения (значение может быть использовано для внутренних нужд).

VersionName – значение версии, которое показывается пользователю.

Все остальные теги находятся внутри тега , и основные из них мы сейчас и рассмотрим.

Тег Uses-sdk содержим параметры, которые указывают на необходимую для работоспособности приложения версию SDK. Возможны такие параметры:

minSDKVersion - минимально допустимая версия SDK, чтобы запустить программу.

targetSDKVersion – «целевая» версия SDK, проще говоря – на данной версии проводилось тестирование приложения.

maxSDKVersion – верхняя допустимая версия SDK для работы приложение. Если нет стопроцентной уверенности в том, что на более новых версиях SDK приложение не будет работать, то данный параметр лучше не использовать вовсе.

android:targetSdkVersion=»5″>

Как видно, минимальная версия SDK – четвертая, а тестирование проводилось на пятой.

Тег Uses-Configeration определяет компбинацию допустимых методов ввода для приложения. Возможны следующие параметры:

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

reqHardKeyboard – приложение будет требовать обязательное наличие аппаратной клавиатуры. Возможные значения: true, false.

reqKeyboardType - требование приложения к типу клавиатуры, которое распространяется как на программную (сенсорную), так и на аппаратную клавиатуру. Значения:

undefined – значение по умолчанию, означает, что приложение не требует клавиатуру.

nokeys – аналогично предыдущему, приложение не требует клавиатуру.

twelvekey – приложение требует 12-символьную стандартную «телефонную» клавиатуру.

qwerty – приложение требует полную клавиатуру с раскладкой qwerty.

reqNavigation – требования приложения к возможным способам навигации на девайсе (трекбол, джойстик, колесико). Допустимые значения:

undefined – значение по умолчанию. У приложения к способу навигации требований нет.

nonav – у приложения к способу навигации требований нет.

dpad – приложению требуется D-pad для работы.

trackball – приложению нужен трекбол.

wheel – приложению требуется колесо навигации.

reqTouchScreen – обязательно наличие сенсорного экрана. Допустимые значения:

undefined – значение по умолчанию, наличие сенсорного экрана не требуется.

notouch – наличие сенсорного экрана не требуется.

stylus – необходим сенсорный экран резистивного типа (управляемый стилусом).

finger – необходим сенсорный экран емкостного типа (управляемый пальцем).

android:reqKeyboardType=[«qwerty»/>

android:reqNavigation=[«trackball»]

android:reqHardKeyboard=[«true»]

android:reqKeyboardType=[«twelvekey»]/>

Тег User-Feature определяет необходимые аппаратные и программные возможности устройства. Полный список всех допустимых требований приведен в официальной документации для AndroidManifest. xml - http://developer.android.com/guide/topics/manifest/uses-feature-element.html#features-reference .

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

android:name=»android.hardware.camera» />

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

smallScreens – приложение поддерживает нестандартные и малые разрешения дисплея (такие как HVGA, QVGA).

normalScreens – приложение поддерживает стандартные разрешения (такие как HVGA, WVGA, WQVGA).

largeScreens – приложение поддерживает устройства с высокой разрешающей способностью дисплея.

anyDensity – допустимо любое разрешение экрана.

Значения для всех параметров false или true.

android:normalScreens=[«true»]

android:largeScreens=[«true»]

android:anyDensity=[«false»] />

Тег Application – один из основных. Здесь описываются такие параметры приложения, как его название, иконка, ссылка на пользовательский интерфейс и много чего еще. Кроме того, данный тег – это контейнер для других тегов, которые описывают те или иные компоненты программы, в том числе Service, Activity, Content Provider и Broadcast Receiver. О .

android:theme=»@style/my_theme»

android:name=»MyApplication»

android:debuggable=»true»>

Тег создается для каждого имеющегося в приложении Activity. Кроме того, каждый Activity, в свою очередь, поддерживает тег , чтобы определить запускающий Activity Intent.

Тег нужен для описанию каждого имеющегося в приложении класса Services. Как и , тег поддерживает дочерний тег .

Тег Используется для описания каждого Content Provider в программе.

android:name=».MyContentProvider»

android:enabled=»true»

android:authorities=»com.paad.myapp.MyContentProvider»>

Тег необходим для объявления Broadcast Receivers, не запуская само приложение. То есть в теге могут описываться события, на которые приложение должно реагировать.

android:label=»My Intent Receiver»

android:name=».MyIntentReceiver»>

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

Полный список всех допустимых разрешений можно получить из официальной документации – http://developer.android.com/reference/android/Manifest.permission.html .

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

android:protectionLevel=»dangerous»

android:label=»Self Destruct»

android:description=»@string/detonate_description»>

Вот, в целом, и вся структура AndroidManifest. xml . Несмотря на сравнительную простоту, данный файл имеет ключевое значение в работоспособности любого приложения, а потому ему должно быть уделено должное внимание при собственноручном создании программного обеспечения для ОС Android.

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

Manifest (Манифест) - на этой вкладке, показанной на рис. 1.3, определяются общие параметры приложения, такие как название пакета п информация о версии приложении (для установки и обновления).

Application (Приложение) - на этой вкладке определяются такие данные о приложении, как имя и значок приложения, а также внутренние компоненты приложения, например, какие деятельности могут выполняться (включая деятельность запуска DroidActivity по умолчанию) и другие возможности и сервисы, обеспечиваемые приложением.

Permissions (Разрешения) - это вкладка, где определяются права приложения. Например, если приложению необходима возможность чтения списка контактов

телефона, то в конфигурационный файл должен быть добавлен тип Uses-Permission с правом на чтение контактов (android, permission. READCONTACTS).

Instrumentation (Инструментарий) - эта вкладка используется для тестирования компонентов с помощью различных классов инструментария, доступных в Android SDK.

AndroidManifest.xml - эта вкладка представляет собой простой XML- редактор для редактирования файла манифеста вручную.

Если перейти на вкладку AndroidManifest.xml, вы увидите код файла манифеста, который выглядит примерно следующим образом:

xmlns:android="http://schemas.android.com/apk/res/android"

package="com.androidbook.droidl"

android: versionCode=" 1"

android:versionName="l. 0">

android:icon="@drawable/icon" android:label="@string/app name">

android: name=". DroidActivity" android:label="@string/app name">

android:name="android.intent.action.MAIN" />

android: name = "android. intent . category. LAUNCHER" / >

ВНИМАНИЕ!

ЗНАЕТЕ ЛИ ВЫ, ЧТО… __________________________________________________

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

с изображением листа бумаги, (буквой «а» и знаком «плюс»I на панели инструментов Eclipse.

ВЫПОЛНИТЕ САМОСТОЯТЕЛЬНО

РЕДАКТИРОВАНИЕ КОНФИГУРАЦИОННОГО ФАЙЛА ANDROID

Попробуйте отредактировать файл манифеста Android. Вы не сможете проводить отладку приложения, пока не установите значение атрибута android:debuggable равным true. Для этого выполните следующие действия:

1. Откройте файл AndroidManifest.xml в редакторе ресурсов.

2. Перейдите на вкладку Application (Приложение).

3. Раскройте список атрибута debuggable и выберите пункт true.

4. Сохраните файл манифеста.

Теперь, если переключиться на вкладку AndroidManifest.xml, вы увидите, что у тега

«application» появился атрибут отладки:

android:debuggable="true"

РЕДАКТИРОВАНИЕ ДРУГИХ ФАЙЛОВ РЕСУРСОВ

большинство ресурсов приложения Android хранятся в папке /res. Она содержит в себе подпапки:

/drawable-ldpi, /drawable-hdpi, /drawable-mdpi - в этих подпапках хранятся графические файлы ресурсов для различной плотности размеще ния точек и разрешений экрана. Если вы просмотрите содержимое этих папок на панели Project Explorer (Проводник проектов), то найдете гра фический файл icon.png в каждой из них. Это значок приложения. По дробнее о различии между этими папками вы узнаете в часе 20.

/layout - и этой подпапке хранятся файлы макета пользовательскою интерфейса. Здесь вы можете найти файл макета экрана main.xml, кото рый содержит описание пользовательского интерфейса для деятельно сти по умолчанию.

/values – в этой подпапке различные типы ресурсов сгруппированы по типам, таким как строковые значения, значения цвета и другие примитивные типы. Здесь вы можете видеть файл ресурса strings.xml, который содержит все строковые ресурсы, используемые в приложении.

Щелкните дважды по какому-либо из файлов ресурсов, чтобы открыть его н редакторе.

Помните, что вы можете редактировать XML-данные непосредственно н текстовом редакторе.

ВЫПОЛНИТЕ САМОСТОЯТЕЛЬНО РЕДАКТИРОВАНИЕ СТРОКОВЫХ РЕСУРСОВ

Если вы посмотрите на код файла макета main.xml, то увидите, что он выводит на экран простой интерфейс с единственным элементом пользовательского интерфейса - TextView. Этот элемент выводит на экран текстовую строку. В нашем случае отображаемый на экране текст определяется строковым ресурсом 0string/hello.

Для редактирования строкового ресурса 0string/hello редактором строковых ресурсов выполните следующие действия: 1. Откройте в редакторе ресурсов файл strings.xml.

2. Обратите внимание на строковый ресурс с именем hello и текстом Hello

World, DroidActivity! в редакторе ресурсов. 3. В поле ввода Value (Значение) измените это значение на Hello, Dave.

4. Сохраните файл.

Теперь если вы переключитесь на вкладку strings.xml и посмотрите на код XML, то увидите, что в контейнерном теге содержится два строковых элемента:

Hello, Dave

AndroidManifest.xml - необходимый файл для каждого приложения Android. Он расположен в папке приложения и описывает глобальные значения для Вашего пакета, включая прикладные компоненты (действия, службы, и т.д), который пакет выставляет ‘внешнему миру’, какие данные каждое из Activity приложения может обработать, и как они могут быть начаты.

Важная вещь к упоминанию об этом файле - свой так называемый IntentFilters. Эти фильтры описывают где и когда Activity может быть начат. Когда Activity (или операционная система) хочет выполнить действие, такое, как открыть Web-страницу или открыть экран выбора, это создает объект Intent. Этот Intent может хранить информацию, описывающую, что Вы хотите сделать, какие данные необходимы, чтобы достигнуть этого и другую информацию. Андроид сравнивает информацию в объекте Intent с IntentFilters, выставленным каждым приложением, и находит Activity, соответствующие, чтобы обработать данные или действия, определенные вызывающей программой. Если есть больше чем одно приложение, способное к обработке этого Intent , пользователя спрашивают, каким приложением он предпочел бы обрабатывать это.

Помимо объявления Activity, Content Provider, Service и Intent Receivers Вашего приложения, Вы можете также определить разрешения в AndroidManifest.xml.

Основное

Очень простой AndroidManifest.xml выглядит следующим образом:

android:label="@string/app_name">

Почти каждый AndroidManifest.xml (так же как многие другой Андроид файлы XML) будет включать объявление пространства имен в его первый элемент. Это делает множество стандартных атрибутов Андроид доступным в файле, который будет использоваться, чтобы снабдить большинством данных для элементов в том файле.

Почти каждый AndroidManifest.xml включает единственный тэг, который непосредственно содержит несколько тэгов, описывающих Applications, IntentReceivers, и т.д., которые доступны в этом приложении.

Если Вы хотите сделать Activity запускаемым непосредственно через пользователя, то Вы должны будете прописать ему поддержку действия MAIN и категории LAUNCHER. Результат как показано здесь:

Напрямую запускаемый Activity.

Дальше следует, детальный разбор структуры файла AndroidManifest с описыванием всех доступных , с примером для каждого. (Примеры не везде, но я точно ничего не потерял. И фраза “для каждого” в англ. версии (“for each”) тоже была. Не знаю, где они потеряли эти примеры. – прим. переводчика). Кто чей потомок, можно определить по отступу:

Это корневой узел каждого AndroisManifest.xml. Он содержит пакета атрибутов, который указывает на какой-то конкретный пакет в Activity (Получилось не совсем по-русски, но, вообщем, фишка в том, что в коде есть пакет Activity, а вот параметры этого пакета описаны в этом теге. - прим. переводчика). Другой путь к Activities будет базироваться относительно его значения.

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

Объявляет разрешение безопасности, которое может использоваться, чтобы указать, какие приложения могут обратиться к компонентам или особенностям в этом пакете. Количество не ограничено.

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

< application >

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

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

Примечание: у Каждой Activity должен быть тэг в manifest, выставлено ли это миру или предназначено для использования только в пределах собственного пакета. Если у Activity не будет никакого тэга соответствия в manifest, то Вы не сможете использовать ее.

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

Тип действия, который компонент поддерживает. Пример:

< category >

Тип MIME, URI схема или URI путь поддержки компонента.

Вы можете также связаться 1+ части метаданных с Вашим Activity:

Добавляет новую часть метаданных к Activity, которую клиенты могут восстановить через ComponentInfo.metaData.

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

Service - компонент, который работает на заднем плане произвольное количество времени. В этот тег, как с тэгом activity, Вы можете произвольно включить один или более или .

ContentProvider - компонент, который управляет постоянными (persistent) данными и открывает к ним доступ другим приложениям. Вы можете также произвольно присоединить один или более , как и в activity. тут нету.

Конечно, все <теги> должны быть или так , или так, <напрямую/>.





Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: