# The legend about AIDL. Part 1. The roots

DevFeed: [The legend about AIDL. Part 1. The roots](<https://devfeed.tech/articles/the-legend-about-aidl-part-1-the-roots-26012.md>)

Original publisher: [Read original article](<https://unbreakable-titan.medium.com/the-legend-about-aidl-part-1-the-roots-c144be38d9a4?source=rss-e32583ce94d4------2>)

Author: Vladislav Puryev

Published: 2021-01-16T14:45:31Z

Content type: tutorial

Language: en

Sources: [Stories by Vladislav Puryev on Medium](<https://devfeed.tech/sources/stories-by-vladislav-puryev-on-medium.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [distributed-systems](<https://devfeed.tech/topics/distributed-systems.md>), [Remote Procedure Call (RPC)](<https://devfeed.tech/topics/rpc.md>), [Processes](<https://devfeed.tech/topics/processes.md>), [Programming](<https://devfeed.tech/topics/programming.md>)

Tags: [aidl](<https://devfeed.tech/tags/aidl.md>), [android](<https://devfeed.tech/tags/android.md>), [computer-science](<https://devfeed.tech/tags/computer-science.md>), [distributed-systems](<https://devfeed.tech/tags/distributed-systems.md>), [processes](<https://devfeed.tech/tags/processes.md>), [programming](<https://devfeed.tech/tags/programming.md>), [remote-procedure-calls](<https://devfeed.tech/tags/remote-procedure-calls.md>), [rpc](<https://devfeed.tech/tags/rpc.md>)

## AI overview

This first article in a three-part series introduces Android Interface Definition Language (AIDL) and explains its theoretical foundation in Interface Definition Language (IDL). It discusses processes in distributed systems and introduces Remote Procedure Call (RPC) as a way for client applications to invoke server functions without knowing their implementation. The article is theoretical; code examples and Android internals are deferred to later parts.

## Source excerpt

The legend of AIDL. Part 1. The roots Hello everybody. I would like to tell you one story about very ancient and not popular character of Android system. Not popular for developers, as they suppose. This is Android Interface Definition Language. In this article I want to tell you about the origin of AIDL, about the base concept -- IDL. Let's get started. WARNING! This article contains theoretical information only. The code examples, internals and actual technical details from Android system will be provided in the next articles. This series of articles consist of three parts: The legend about AIDL. Part 1. The roots (you are here) The legend about AIDL. Part 2. In Action The legend about AIDL. Part 3. The crucial ingredient What is IDL AIDL means Android Interface Definition Language. But before get to know more about platform specific mechanism, it is useful to learn something about its theoretical basis. Let's forget about Android for a while and try to understand what Interface Definition Language is. Well, there are not too many official definitions for this concept, but I like next one (source): Interface definition language -- is a language that describes the interface between client and server process in a distributed system. I suppose it is not very clear. Let's break it down. Independent Communication What is one of the main features of distributed systems? They can interact (even must interact) with many processes. Process is a single complicated concept, which is beyond of this article. Just for now, you should know (if you are not familiar with it) next thing: process is an program (application) at runtime. All of it is quite rough, but enough. More important for distributed systems, that applications can be developed with different programming languages and technologies. And they can be located on different computers. Or they can be on one computer (device), but on distinct and independent virtual machines. Anyway user must have access to programs and res