Android System Architecture
Android architecture consist of main four layers
- Linux Kernel
- Libraries and Android Runtime.
- Application Framework
- Based on Linux 26 kernel.
- Hardware abstraction layer
- Use Linux because it provides proven driver model and existing drivers.
- Provides Memory management, Process management, Security management, Networking etc
- Written in C/C++
- Surface Manager : Composing different drawing surfaces in on the screen. So Surface manager is responsible for taking care of different windows owns by different application running on diff process.
- OpenGL/ES and SGL : These two will make the core of the Graphics Library. OpenGL/ES takes care of 3D graphics library and SGL take care of 2 D graphics
- Media Framework : provides by packet video. all audio and video codec, AAC, JPEG, MP3 etc
- Free Type: render out fonts
- SQLite : core for data storage.
- Webkit : open source browser engine.
- Provides the set of core libraries that allows developers to develop the android apps using java programming language.
- Delvik virtual machine allows every android every android app to run on its own process.
- Android applications are complied into Dalvik executables
- Delvik virtual machine is designed for android and optimized for limited battery, limited memory and CPU.
- Core libraries : blue, written in java. Contains collections classes, utilities, IO, tools etc.
- Written in java
- Tool kit that all application uses.
- Applications written by Google or by you. All applications uses same API and framework.’
- Activity Manager: manages the life cycle of an applications and maintains the back stack as well so that the applications running on different processes has smooth navigations.
- Package Manager: keeps track of which applications are installed in your device.
- Window Manager : Manages windows which are java programming abstractions on top of lower level surfaces provided by surface manager.
- Telephony Managers: manages the API which is use to build the phone applications that is
- Content Providers: Provide feature where on application can share the data with another application. like phone number , address, etc
- View Manager : Buttons , Edit text , all the building blocks of UI, event dispatching etc
All this top layer you will find all the applications that comes along with your android device like phone, contacts, web browsers, Camera etc. This layer shows all the applications developed by you.
Happy Androiding 🙂
If you find anything incorrect or you feel that there is any better approach to solve the above problem, please write comment.