Concepts
android kernel
- Android Common Kernel: The Android common kernel (ACK) is based on a Linux Long Term Supported (LTS) kernel.
- Android System Core: Minimal Linux system. It initializes the device and starts before the Android Runtime (ART) and java-based services or applications.
- Generic Kernel Image (GKI) kernel: This kernel has two parts: the core GKI kernel (common across all devices) and GKI modules (by Google) that can be dynamically loaded on devices where applicable.
android and vendors
subsystems
- Android base framework: The android framework provides API / interfaces / classes on top of which applications are built.
- Android recovery: Android recovery has its dedicated partition. It can be used reset, update or recover the Android installation.
- Android Runtime (ART): Application runtime environment used by Android. ART compiles applications into native machine code "ahead of time" (AOT) when they are installed.
- Android Runtime library: libart implements the core part of Android Runtime (execution environment using mainly AOT compilation, or JIT compilation or interpretation)
- dalvik: Dalvik is a virtual machine (VM) for Android applications. Dalvik VM is discontinued, replaced by ART (Android Runtime). Dalvik bytecode format is still used as a distribution format.
- rendrescript framework: RenderScript is a framework for running computationally intensive tasks at high performance on Android. The runtime parallelizes work across multi-core CPUs and GPU of the device.
techno
- android openjdk library: Android uses OpenJDK java libraries
- Android Package file format: The Android Package (APK) file format is used for distribution and installation of android application.
- Android Pony EXpress (APEX): The Android Pony EXpress (APEX) container format is used to install / update lower-level system modules.
- Android Virtual Devices: An Android Virtual Device (AVD) is a configuration that defines the characteristics of an Android phone, tablet, Wear OS, Android TV, or Automotive OS device that you want to simulate in the Android Emulator.
- bionic: C Runtime (CRT) for Android, port of the BSD C library (c-library, math and other core runtime libraries)
- Dalvik Executable: Dalvik Executable (DEX) format contains Dalvik virtual machine bytecode.
- dex2oat: Dex2oat takes a DEX file with Dalvik bytecode (or APK). Depending on options, it verifies / optimizes / compiles it to native code (Ahead-of-time compilation).
- dexter: Android library that simplifies the process of requesting permissions at runtime.
- libjavacore: libjavacore is a native library in the Android operating system that provides the interface between the Java virtual machine (JVM) and the underlying Android system.
applications
- Android Camera2: The Android Camera application allows users to take photos and videos using the device's camera.
- Android Launcher3: The Android Launcher is the user interface that manages the home screen, how to launch mobile apps, make phone calls, etc.
- Android Settings: Android Settings application
- calendar: calendar application
- contacts: contacts application
- gallery: gallery application. This is an offline photo gallery. The application allows to browse, view, edit, and manage photos.
- Android debug bridge: Android debug bridge (adb) is a command-line tool to communicate with an android device.
- AVD launcher: Front-end for the Android Virtual Devices (AVD) emulator.
projects
- android mainline project: Project Mainline modularizes android and enables to update core OS components through Google Play. It also relies on Treble project.
- gki project: A Google project addressing kernel fragmentation by separating common core kernel functionality from vendor-specific SoC and board support into loadable modules.
- treble: Project Treble was a re-architecture of Android that created a split between the OS framework and device-specific low-level software (called the vendor implementation) through a well-defined, stable vendor interface. As a part of this split, the Android OS framework guarantees backward compatibility with the vendor implementation, which is checked through a standardized compliance test suite (VTS).
build
- blueprint: meta-build system (reads Blueprints files, produces a Ninja manifest)
- soong: The Android build system. It replaces Android.mk files with Android.bp files, which are JSON-like simple declarative descriptions of modules to build.
tests
- Android Compatibility Test Suite: This test suite insures that an Android build complies with the Android specifications.
- Android Mainline Test Suite: MTS consists of a set of testing frameworks and test cases, designed to help enhance the robustness, reliability, and compliance of a mainline train (i.e. a set of mainline modules).
Generated by PFA software prototype