The HAL Interface Description Language (HIDL) specifies the interface between a HAL and its users. It defines types and method calls, collected into interfaces and packages. HIDL is a system for communicating between codebases that may be compiled independently and is intended for inter-process communication.
Hardware Abstraction Layer (legacy)
A HAL defines a standard interface for hardware vendors to implement, which enables Android to be agnostic about lower-level driver implementations. Using a HAL allows you to implement functionality without affecting or modifying the higher level system.