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

AIDL - это специальный язык, который позволяет клиентскому и серверному процессу устанавливать интерфейс, который может использоваться для межпроцессного взаимодействия. Этот интерфейс определен в файлах.aidl. Синтаксис интерфейса Android аналогичен синтаксису интерфейсов Java, но имеет несколько особенностей. Файлы Aidl компилируются в файлы Java с помощью специального вспомогательного инструмента.

По умолчанию из соображений безопасности все приложения в Android запускаются со своим собственным uid и в разных процессах. В то же время, поскольку Android является мобильной операционной системой, она должна обеспечивать возможность максимального повторного использования компонентов приложений. Таким образом, механизмы обмена информацией должны быть реализованы. Эти механизмы называются межпроцессным взаимодействием. Для Android реализован специальный механизм IPC под названием Binder.

Чтобы общаться друг с другом, Android-процессы должны разложить информацию на примитивы, которые могут быть поняты драйвером Binder. Этот драйвер должен отправить эти примитивы удаленному процессу и объединить их там в отправленную информацию. Процесс разложения и компоновки трудно описать. Поэтому для облегчения этого процесса OHA предложила специальный инструмент под названием "aidl".

Ссылки:

  1. Разработчики Android: aidl
  2. Удаленные методы и помощь