Android is a Linux-based software stack divided into several layers. Those layers, from down to top are the following:
- Linux kernel: This is the foundation of the Android platform. This layer contains all the low-level device drivers for the various hardware components of an Android device.
- Hardware Abstraction Layer (HAL): This layer provides standard interfaces that expose hardware capabilities to the higher-level Java API framework.
- Android Runtime (ART): It provides a runtime environment for .dex files, a bytecode format designed for minimal memory footprint. ART was the first release on Android 5.0 (see table below). Prior to that version, Dalvik was the Android runtime.
- Native C/C++ libraries: This layer contains ...