Каковы механизмы IPC, доступные в ОС Android?

Кто-нибудь, пожалуйста, скажите мне, каковы все механизмы IPC, которые присутствуют в Android.

Насколько мне известно, это:

  1. Intents
  2. Связующие

Ответ 1

В Android существует три типа механизма IPC:

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

Ответ 2

IPC - это межпроцессное взаимодействие. Он описывает механизмы, используемые различными типами компонентов Android для связи друг с другом.

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

2) Bundles - это объекты данных, которые передаются через. Это похоже на сериализацию объекта, но намного быстрее на Android. Пакет можно прочитать из намерения с помощью getExtras().

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

Ответ 3

Как написано на странице Android Developers, механизмы IPC в Android включают:

  • Намерения (с включенными пакетами)
  • Связующие или посланники с услугой
  • BroadcastReceivers

Ответ 4

Все ответы хороши и лаконичны в этом посте. Но я хотел бы осветить, на какой механизм IPC я должен использовать. Прежде всего IPC означает Inter Process communication, где два приложения или процессы будут связываться друг с другом, передавая некоторые данные между ними. Поскольку андроид предназначен для встроенных и небольших устройств, мы не должны использовать serialization для IPC, вместо этого мы можем использовать BINDERs, который использует parcels внутри себя. Parcel - это своего рода облегченная сериализация с использованием концепции общей памяти.

Существует много различий между Binder IPC и Serialization IPC:

1. Сериализация очень тяжелая для использования во встроенных устройствах, связь будет очень медленной.   2.. Связывание использует пакеты, чтобы сделать IPC очень быстро.   3.. Связыватели внутренне используют концепцию общей памяти, которая использует меньше памяти при совместном использовании данных между двумя процессами.

Bottom Line: BINDERs использует меньше памяти и довольно быстро, так как использует паркеты. serialization очень тяжелый, требуется время для отправки и получения данных, а также требуется больше памяти по сравнению с вложениями.

Примечание. Для передачи данных между действиями, службами и получателями используйте только Связки. Не используйте ни сериализацию, ни связывание. Связывающие устройства специально используются только для связующих сервисов, в которых будут взаимодействовать 2 процесса.

Надеюсь, что это поможет:)

Ответ 5

Существует три типа механизмов IPC:

  • обработчик
  • реализация связующего
  • AIDL