Android system architecture contains the following components:

Figure 1. Android system architecture

HAL interface definition language (HIDL)

Android 8.0 re-architected the Android OS framework (in a project known as Treble) to make it easier, faster, and less costly for manufacturers to update devices to a new version of Android. In this new architecture, the HAL interface definition language (HIDL, pronounced "hide-l") specifies the interface between a HAL and its users, enabling the Android framework to be replaced without rebuilding the HALs.

HIDL separates the vendor implementation (device-specific, lower-level software written by silicon manufacturers) from the Android OS framework via a new vendor interface. Vendors or SOC makers build HALs once and place them in a /vendor partition on the device; the framework, in its own partition, can then be replaced with an over-the-air (OTA) update without recompiling the HALs.

The difference between the legacy Android architecture and the current, HIDL-based architecture is in the use of the vendor interface:

All new devices launching with Android 8.0 and higher can take advantage of the new architecture. To ensure forward compatibility of vendor implementations, the vendor interface is validated by the Vendor Test Suite (VTS), which is analogous to the Compatibility Test Suite (CTS). You can use VTS to automate HAL and OS kernel testing in both legacy and current Android architectures.

Architecture resources

For details on the Android architecture, see the following sections: