- Applications
- All applications are written using the Java programming language.
- Application Framework
- Developers have full access to the same framework APIs used by the core applications. The application architecture is designed to simplify the reuse of components
- Libraries
- System C library - a BSD-derived implementation of the standard C system library (libc), tuned for embedded Linux-based devices
- Media Libraries - based on PacketVideo's OpenCORE; the libraries support playback and recording of many popular audio and video formats, as well as static image files, including MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG
- Surface Manager - manages access to the display subsystem and seamlessly composites 2D and 3D graphic layers from multiple applications
- LibWebCore - a modern web browser engine which powers both the Android browser and an embeddable web view
- SGL - the underlying 2D graphics engine
- 3D libraries - an implementation based on OpenGL ES 1.0 APIs; the libraries use either hardware 3D acceleration (where available) or the included, highly optimized 3D software rasterizer
- FreeType - bitmap and vector font rendering
- SQLite - a powerful and lightweight relational database engine available to all applications
- Android Runtime
- Every Android application runs in its own process, with its own instance of the Dalvik virtual machine.
- The Dalvik VM relies on the Linux kernel for underlying functionality such as threading and low-level memory management.
- Linux Kernel
- Android relies on Linux version 2.6 for core system services such as security, memory management, process management, network stack, and driver model.
What is Android?