– Android architecture is a stack of software components.
– This is in the form of software application, operating system, run-time environment, middleware, native libraries, and services.
The following are the main components of the architecture
1. Linux Kernel
2. Native Libraries
3. Android Runtime
4. Application Framework
5. Applications
The below diagram shows the architecture of android
1. Linux Kernel
– The heart of android architecture.
– Level of abstraction between the hardware devices and upper layer of the software stack.
– Android operating system of based on the Linux kernel.
– Linux kernel is responsible for the Device, Camera, Display, Bluetooth, Keypad driver’s memory management, etc.
2. Native Libraries
– Native libraries such as Media, WebKit, SQLite, OpenGL, etc. And are situated on the top of a Linux kernel.
– Media libraries are playing and recording audio and video formats, font support, WebKit browser support, SQLite database support, security, etc.
3. Android Runtime
– It’s the second layer from the bottom.
– It includes core libraries and Dalvik Virtual Machine(DVM) which is responsible to run android applications.
– Like Java Virtual Machine (JVM), Dalvik Virtual Machine (DVM) in java but DVM optimized for mobile devices.
– DVM used Linux core features like memory management and multi-threading.
– DVM for fast performance and consumes less memory.
4. Application Framework
– It’s at the top of the Native libraries and Android runtime.
– It includes API such as Activity manager, window manager, provider, telephony manager, etc.
– It provides a lot of classes and interfaces for android app development and higher-level services to applications in java classes.
– Activity manager is responsible for controlling all the aspects of the application lifecycle and activity stack.
– Content provider is responsible for allowing the applications to publish and share the data with the other applications.
– System is responsible for creating application user interfaces, etc.
5. Applications
– It is at the top of the Application framework.
– Application such as Home, Contact, Alarm, Calendar, Camera, Browsers. use of the android framework which uses Android runtime and libraries.
– The android runtime and Native libraries use the Linux kernel.
– The user can write his/her application to be installed on this layer only.