Upgrade to Pro — share decks privately, control downloads, hide ads and more …

IPC in Android

IPC in Android

Technokratos Android Meetups #1 by Rodionov Sergey

Avatar for Technokratos

Technokratos

July 07, 2018
Tweet

More Decks by Technokratos

Other Decks in Programming

Transcript

  1. Поток - сущность внутри процесса, которая может быть запланирована для

    выполнения. Кроме этого потоки внутри процесса имеют общее адресное пространство.
  2. Binder Процесс-сервер определяет удаленный интерфейс, с помощью класса Binder, а

    потоки в процессе - клиенте получают доступ к удаленному интерфейсу через этот удаленный объект.
  3. Язык AIDL AIDL - это контракт взаимодействия между локальным и

    удаленным процессом. Описание формируется в файле .aidl. После компиляции формируется java файл.
  4. - Реализуется с помощью ключевого слова ONEWAY - У асинхронных

    методов тип возвращаемого значения должен быть void
  5. in in - объект передается от клиента к сервису только

    для ввода. Все изменения, внесенные в объект в службе не отразятся на клиенте.
  6. out out - объект не имеет соответствующих данных и будет

    заполнен службой и возвращен в качестве ответа.
  7. Объект Messenger - Использует фреймворк Binder для передачи ссылки на

    процесс-клиент, и для отправки объектов сообщений Message. - Основан на использовании механизма Handler/Looper - Сообщения передаются последовательно
  8. Работа под “капотом” 1. Передача ссылки на объект Messenger в

    процесс-клиент 2. Отправка сообщений в процесс-сервер. 3. После получения клиентом ссылки на Messenger сервера процедура отправки сообщений может повторяться многократно
  9. Итоги 1. Основные преимущества IPC 2. Компоненты для реализации IPC

    3. Механизмы взаимодействия “под капотом” 4. Реализация механизмов взаимодействия