Android architecture / Android software stack is classified into five parts ie.:
- Linux kernel
- native libraries (middleware)
- Android Runtime
- Application Framework
- Linux kernel:It is the most important part 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 and that’s why we called it a Linux based operating system.
- Native Libraries:On the top of Linux kernel, there are some Native libraries such as OpenGL, WebKit, SQLite, Media such as audio or videos, C runtime library (libc) etc.
The WebKit library is responsible for browser support, SQLite is for database it is used only in mobile phone local databases to store information even in no internet, Media for playing and recording audio and video formats.
- Android Runtime:In android runtime, there are core libraries and Dalvik Virtual Machine(DVM) which is responsible to run android applications like in java used Java Virtual Machine(JVM ) in run time.
DVM is like JVM but it is optimized for mobile devices only used in android app development. It consumes less memory and provides fast performance in mobile app.
- Android Framework:On the top of Native libraries and android runtime, there are so many android frameworks use some frameworks are provided from google team and some of them are open source third party frameworks. Android framework includes Android APIs such as User Interface(UI) which we used for android UI development, resources, telephony, locations, Content Providers (data) and package managers and It provides a lot of APIs(classes and interfaces) for android application development.
- Applications:On the top of android framework, there can be applications. All applications such as home, contact, settings and games are using android framework that uses android runtime and libraries and android runtime and native libraries are using linux kernel which is faster than any other operating system.