Главная » Разработка для Android » Использование AIDL при межпроцессном взаимодействии Сервисов

0

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

В главе 9 вы узнали, как создавать Сервисы для своих программ. Теперь пришло время научиться использовать язык описания интерфейсов (Android Interface Definition Language или AIDL) для обеспечения поддержки  меж- процессного взаимодействия (IPC) между Сервисами и компонентами при- ложения.  Это позволит вашим Сервисам работать с разными программами, не ограничиваясь рамками единственного процесса.

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

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

Реализация интерфейсов с помощью AIDL

AIDL поддерживает несколько типов данных.

Простые типы Java (int, boolean, float, char и т. д.).

Значения String  и CharSequence.

Объекты  List (включая обобщенные),  где каждый  элемент  должен иметь поддерживаемый тип. Класс-получатель всегда будет прини- мать объект List, приведенный к типу ArrayList.

Объекты Map (обобщенные типы не допускаются), где каждый ключ и элемент должен иметь поддерживаемый тип. Класс-получатель всегда будет принимать объект Map, приведенный к типу HashMap.

Интерфейсы, порожденные с помощью AIDL (рассматриваются позд- нее). Всегда нуждается в операторе import.

Классы, реализующие интерфейс Parcelable (рассматриваются далее).

Всегда нуждается в операторе import.

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

Источник: Майер P. Android 2 : программирование приложений для планшетных компьютеров и смартфонов : [пер. с англ. ] / Рето Майер. — М. : Эксмо, 2011. — 672 с. — (Мировой компьютерный бестселлер).

По теме:

  • Комментарии