Подтвердить что ты не робот

Пример использования AIDL

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

прочитав Android-документы... Это ставит меня в замешательство и так много вопросов, поэтому трудно прочитать весь документ для меня, может кто-нибудь мне помочь

  • это для связи с внешним телефоном.

  • или для общения с различными приложениями (почему нам нужно общаться с другими приложениями)

  • какой сервис они говорят в документах

4b9b3361

Ответ 1

AIDL используется для связующего. Binder - это механизм для вызова RPC в/из службы Android.

Когда использовать AIDL? Когда вам нужна Служба. Когда вам нужна услуга? Если вы хотите использовать данные и для управления другими приложениями, вам нужна служба, использующая AIDL в качестве интерфейса. (Поставщик контента используется при совместном использовании данных).

Службы могут использоваться в вашем приложении в качестве рулона модели в шаблоне MVC.

Ответ 2

AIDL - это язык определения интерфейса Android. Это в основном позволяет вам совершать IPC-вызовы.

Использование: Есть ситуации, когда один процесс должен будет разговаривать с другим, чтобы получить определенную информацию.

Пример: Процесс A нуждается в информации о статусе вызова, чтобы определить, нужно ли ему изменять тип вызова (например, аудио на видеовызов или наоборот). Вы можете получить статус звонка у определенных слушателей, но для изменения типа звонка с аудио на видео, Процесс A требуется перехват. Этот "крюк" или способ изменения вызовов обычно являются частью классов телефонии, которые являются частью Процесса телефонии. Таким образом, чтобы получить такую ​​информацию из процесса телефонии, можно написать услугу телефонии (которая выполняется как часть процесса телефонии android), которая позволит вам запрашивать или изменять тип вызова. Поскольку Процесс A (Клиент) использует эту удаленную службу, которая связывается с процессом телефонии, чтобы изменить тип вызова, она должна иметь интерфейс, чтобы поговорить с сервисом. Поскольку Служба телефонии - поставщик, а Процесс A (клиент) - пользователь, им необходимо согласовать интерфейс (протокол), который они могут понять и придерживаться. Такой интерфейс AIDL, который позволяет вам разговаривать (через удаленную службу) с процессом телефонии и выполнять некоторую работу.

Проще говоря, термин AIDL - это "соглашение", которое сообщает ему о том, как разговаривать с сервисом. У самой службы будет копия этого соглашения (поскольку он опубликовал для него клиентов). Затем служба будет внедрять подробные сведения о том, как она обрабатывается после того, как запрос поступит или скажет, когда кто-то говорит с ним.

Таким образом, процесс A запрашивает изменение вызова через Service, Service получает запрос, он разговаривает с процессом телефонии (с его частью) и меняет вызов на видео.

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

Ответ 3

Еще один пример реального мира - лицензия Google Play использует AIDL.

Ответ 4

1 - это для общения с внешним телефоном. Его связь с внешним приложением.

2 - или для общения с различными приложениями (почему нам нужно общаться с другими приложениями) Как упоминал GodOnScooter, когда ваше приложение общалось с телефонией, которая на самом деле является другой частью.

3 - какой вид обслуживания они говорят в документах Это сервис, который работает в разных процессах системы. Для привязки к этой службе вам требуется IPC (межпроцессная связь), для реализации этого используется AIDL.