Основные компоненты Android

Основные компоненты Android

Инфраструктура пользовательского интерфейса Android, как и многие другие части Android, основана на новой концепции под названием намерение (intent) или цель. Намерение — это внутрипроцессный и межпроцессный механизм для вызова компонентов в Android.

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

Хотя намерение в первую очередь предназначено для вызова компонентов, оно обладает характеристиками, которые соответствуют оконным сообщениям, действиям, моделям публикации и подписки, а также взаимодействиям между процессами. Ниже показан пример использования класса Intent для вызова или запуска веб-браузера:

public static void invokeWebBrowser(Activity activity)

{

Intent intent = new Intent(Intent.ACTION VIEW);

intent.setData(Uri.parse("www.google.com"));

activity.startActivity(intent);

}

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

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

public final class R {

// Все строковые ресурсы будут иметь автоматически сгенерированные константы public static final class string {

public static final int hello=0x7f070000;

}

// Все файлы изображений будут иметь уникальные // сгенерированные идентификаторы public static final class drawable {

public static final int myanimation=0x7f020001; public static final int numbers19=0x7f02000e;

}

// Идентификаторы представлений автоматически генерируются на основе их имен public static final class id {

public static final int textViewId1=0x7f080003;

}

// Следующие два файла (подобные html) определяют компоновку, автоматически // сгенерированную из имен файлов в соответствующих подкаталогах. public static final class layout {

public static final int frame animations layout=0x7f030001; public static final int main=0x7f030002;

}

}

Каждый автоматически сгенерированный идентификатор в этом классе соответствует либо какому-то элементу в XML-файле, либо всему файлу. Когда понадобится использовать эти XML-определения, вместо них можно задействовать сгенерированные подобным образом идентификаторы. Такое косвенное обращение очень помогает для специализации ресурсов на основе локали, размеров устройства и т.д. (Файл R.java и ресурсы более подробно описаны в главе 3.)

Еще одной новой концепцией в Android является поставщик контента (content provider). Это абстракция источника данных, которая делает его подобным источником и потребителем служб, оснащенных REST (Representational State Transfer — передача состояния представления). Лежащая в основе база данных SQLite делает поставщики контента мощным средством для разработчиков приложений. Поставщики контента рассматриваются в главе 4. В главах 3, 4 и 5 будет показано, каким образом намерения, ресурсы и поставщики контента обеспечивают открытость платформы Android.

Поделиться в соц. сетях

Опубликовать в Google Buzz
Опубликовать в Google Plus
Опубликовать в LiveJournal
Опубликовать в Мой Мир
Опубликовать в Одноклассники
Опубликовать в Яндекс

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