The device hardware capabilities are exposed to the high-level Java framework through the Hardware Abstraction Layer (HAL). The HAL consists of several library modules that implement interfaces for a specific type of hardware component. This allows hardware vendors to implement functionality without changing the higher-level system.