Пример использования AIDL
чтобы понять AIDL
в android, я хочу один пример реальной жизни, означает, при каком сценарии развития нам нужно использовать AIDL
.
прочитав Android-документы... Это ставит меня в замешательство и так много вопросов, поэтому трудно прочитать весь документ для меня, может кто-нибудь мне помочь
-
это для связи с внешним телефоном.
-
или для общения с различными приложениями (почему нам нужно общаться с другими приложениями)
-
какой сервис они говорят в документах
Ответы
Ответ 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.