2016-07-25 2 views
0

Я читал о Interprocess Communication (IPC) и создавал отправку данных из одного компонента в другой компонент.
Я знал, что IPC определяет канал связи между различными компонентами.
Канал будет иметь интерфейсы программирования для компонентов для передачи данных через. Способы создания интерфейса такие, как AIDL, Binder и Messenger.
После создания интерфейса данные, которые необходимо отправить через него, должны быть Посылка. Таким образом, итоговые шаги заключаются в следующем:
1. Создайте интерфейс программирования.
2. Свяжите интерфейс с компонентом приложения.
3. Компоненты, отправляющие данные этому компоненту, должны преобразовывать данные в парцеллу.

Но неожиданно найдено то, что называется Намерение, которое может отправлять данные от одного компонента другому без этих накладных расходов.
Мне нужно объяснение о том, как Intent может отправлять данные без создания интерфейса?
Является ли намерение внутренне иметь интерфейс?
Какова связь между намерением и IPC, связанным сервисом и интерфейсом?Android: намерение и обмен данными между компонентами

ответ

2

У вас здесь много путаницы. Посмотрим, смогу ли я все выяснить.

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

2) Данные, передаваемые между компонентами, не обязательно должны быть посылкой. Это один из способов, и его способ использования Android при отправке параметров запуска. Но это не обязательно.

3) Использование связующего для связи с услугой возможно только в том случае, если два находятся в одном процессе. Его метод полностью избежать использования IPC.

4) AIDL является оберткой вокруг метода IPC. AIDL использует IPC, он просто пытается сделать его похожим на обычные вызовы функций клиенту.

5) Объект Intent является абстракцией для всех данных, необходимых для запуска службы или активности в Android. Он будет включать параметры, которые могут быть или не быть в Участках. Он может или не может использовать IPC для отправки этих параметров (если целевой Activitiy или Service находится в другом APK, он будет. Если это не так, возможно).

Я думаю, что проблема здесь в том, что вы действительно не понимаете, что такое процесс, что такое компонент Android, и как процессы на самом деле общаются. Я предлагаю заняться изучением этого.

+0

Итак, мы можем сказать, что это связь между двумя действиями в том же процессе. Используется Binder и Intent - это реализация Android для Binder? –

 Смежные вопросы

  • Нет связанных вопросов^_^