Все ответы хорошие и краткие в этом посте.Но я хотел бы осветить, какой механизм IPC я должен использовать .Прежде всего IPC
означает Inter Process communication
, где два приложения или процессы будут взаимодействовать друг с другом, передавая некоторые данные между ними.Поскольку android предназначен для встроенных и небольших устройств, мы не должны использовать serialization
для IPC
, скорее мы можем использовать BINDERs
, который внутренне использует parcels
.Parcel
является своего рода облегченной сериализацией с использованием концепции общей памяти.
Существует много различий между Binder IPC и Serialization IPC:
1. Сериализация очень сложна для использования во встраиваемых устройствах, связь будет очень медленной.
2. Связыватели используют Parcels для очень быстрого IPC.
3. Биндерс внутренне использует концепцию Shared memory, которая использует меньше памяти при совместном использовании данных между двумя процессами.
Итог: Binders
использует меньше памяти и довольно быстроиспользует посылки.Serialization
очень тяжелый, требует времени для отправки и получения данных, а также занимает больше памяти, чем связующие.
Примечание: Для передачи данных между операциями, службами и получателями используетсятолько Связки .Не идите ни на сериализацию, ни на связующие.Связыватели специально используются только для служб связывателей, где будут взаимодействовать 2 процесса.
Надеюсь, это поможет:)