AIDL (Android Interface Definition Language) là một ngôn ngữ đặc biệt được sử dụng trong việc xây dựng ứng dụng Android để định nghĩa các giao diện giữa các thành phần khác nhau của ứng dụng, đặc biệt là giữa các dịch vụ (services) và các thành phần khác như các hoạt động (activities) hoặc các ứng dụng khác.
Trong Android, mô hình tính toán đa luồng được sử dụng rất phổ biến. Điều này có nghĩa là các phần khác nhau của ứng dụng (ví dụ: giao diện người dùng, dịch vụ nền) có thể chạy trên các luồng (threads) riêng biệt. AIDL cho phép các luồng này giao tiếp với nhau thông qua việc định nghĩa giao diện chung.
AIDL được sử dụng để tạo ra các dịch vụ nền (background services) trong Android, nơi mà một phần của ứng dụng có thể chạy độc lập với các thành phần giao diện người dùng và có thể được truy cập từ các ứng dụng khác thông qua giao diện được định nghĩa bằng AIDL.
Khi sử dụng AIDL, bạn định nghĩa các giao diện (interfaces) mà các thành phần khác nhau của ứng dụng sẽ tuân thủ, bao gồm các phương thức và kiểu dữ liệu mà các phương thức này nhận hoặc trả về. AIDL sau đó sẽ tạo ra mã Java để giúp việc giao tiếp giữa các thành phần này.