In simple terms, Android Architecture is a stack of software components required to support mobile device needs. It is in the form of an operating system, software application, middleware, run-time environment, native libraries, and services.
There are 5 main components of android architecture, they are:-
- Android Framework
- Android Runtime
- Platform Libraries
- Linux Kernel
Each layer of the stack and the elements within each layer are integrated, which provides optimal execution environment and application development for mobile devices. Among these components, the Dalvik Virtual Machine(DVM) and Linux Kernel are the main components where Linux Kernel provides operating system functions to mobile and DVM is responsible for running a mobile application.
Following is a pictorial representation of different components of the android architecture.
Main Components of Android Architecture briefly explained
As we know it has 5 main components, So what are these components and what do they mean? Go through each layer to get a brief knowledge of what each layer means and its uses.
Applications is the topmost layer of the android architecture. Any native or third-party applications like a gallery, clock, music, Gmail, games, contacts, etc get installed on this layer only. This layer runs within the Android run-time using the services and classes made available from the application framework.
The classes used to create Android applications is provided by the Application Framework. This layer also provides a generic abstraction for hardware access and manages the application resources and user interface. This also provides services through which we can create a class and make that class beneficial for the Application creation.
The interfaces provided by this layer wraps up all the various libraries and makes them useful for Developers. Some of these interfaces include:-
- Activity Manager
- Telephony Manager
- Location manager
- View System
- Notification Manager
- Content Providers
Android Runtime environment is a very important part of Android rather than an internal part. It contains important components like the Dalvik Virtual Machine and core libraries which is responsible to run an android application. It is like an engine that powers our application along with libraries. This layer forms the basis for the application framework.
Dalvik Virtual Machine (DVM) is similar to Java Virtual Machine (JVM) in Java but specially designed and optimized for android to make sure that a device can run multiple instances smoothly. This relies on the Linux Kernel for low-level memory management and threading. The core libraries in this layer enable us to implement android applications using standard Java language.
The Platform Libraries includes various Java-based libraries and C/C++ core libraries such as libc, SQLite, SSL, Media, OpenGL, Surface Manager, Graphics, etc to provide support for Android development
Some of the following uses of core libraries available for android development are:-
- OpenGL(graphics library): this cross-platform and cross-language API is used to produce 3D and 2D graphics for computers
- Web-Kit: this is sed for web browser support and functionality to display web content.
- Media Frameworks: These libraries allow us to play and record video and audio.
- SSL: SSL stands for Secure Socket Layer and is there for internet security
- SQLite: This is responsible for database support.
Linux Kernel is the bottom-most layer of the android architecture. This is also like a heart of android architecture. This layer manages all the drivers such as camera drivers, display drivers, Bluetooth drivers, memory drivers, audio drivers, etc which are required for the android device during runtime. This layer provides an abstraction layer between the device and the remainder of the stack.
The main features of the Linus Kernel are:-
- Security: It handles security between the system and the application
- Process Management: It manages the process well and allocates resources to process whenever they are needed
- Memory Management: It handles memory management efficiently and provides the freedom to develop our apps.
- Driver Model: This ensures that to application works properly.
- Network Stack: This handles network communications effectively.
Now, you know what is android architecture. Do you agree with me? Please leave a comment. Hope you like the content and the information shared by me. If you find this post knowledgeable and learned something new and interesting today then please share this post with your friends and family members and help the Optimistic Coder to spread informational contents. Thank You.