Android Architecture
android architecture or Android software stack is categorized into
five parts:
- linux kernel
- native libraries (middleware),
- Android Runtime
- Application Framework
- Applications
Let's see the android architecture first.
1. Linux kernel
- It is the heart of android architecture that exists at the root of android architecture.
- Linux kernel is responsible for device drivers, power management, memory management, device management and resource access.
2. Native Libraries
- On the top of linux kernel, their are Native libraries such as WebKit, OpenGL, FreeType, SQLite, Media, C runtime library (libc) etc.
- The WebKit library is responsible for browser support, SQLite is for database, FreeType for font support, Media for playing and recording audio and video formats.
3. Android Runtime
- In android runtime, there are core libraries and DVM (Dalvik Virtual Machine) which is responsible to run android application.
- DVM is like JVM but it is optimized for mobile devices.
- It consumes less memory and provides fast performance.
4. Android Framework
- On the top of Native libraries and android runtime, there is android framework.
- Android framework includes Android API's such as UI (User Interface), telephony, resources, locations, Content Providers (data) and package managers.
- It provides a lot of classes and interfaces for android application development.
5. Applications
- On the top of android framework, there are applications.
- All applications such as home, contact, settings, games, browsers are using android framework that uses android runtime and libraries.
- Android runtime and native libraries are using linux kernel