In this article at OpenGenus, you have explained the Architecture of Android OS in depth which is a starting point for Android Development. Android architecture contains stacks of software components to support a large number of Android-enabled devices.
The main components of Android architecture are:
- System Applications
- Application Framework
- Android Runtime(ART)
- Linux Kernel
Figure 1: Android Architecture
1. System Applications
System applications are at the topmost layer of the Android architecture. Only pre-installed applications such as browsers, galleries, cameras, etc., and third-party applications will be installed in this layer. These applications also provide essential resources that developers can use in their applications. For example, an application accessing the gallery to upload a profile picture of the user.
Below are some of the applications:
- Camera: This is used to take pictures and record videos
- Email: This is used to receive and send emails
- Contacts: This is used to store phone numbers
- Calendar: This is used to schedule tasks or appointments
- Gallery: This is used to store and view pictures
- Browser: This is used for displaying and printing web contents on the Internet or Intranet.
2. Application Framework
The application framework consists of Java classes and interfaces that are utilized in the development of Android applications. An Android Hardware Abstraction Layer (HAL) is included in this framework, which allows communication between applications and hardware-specific device drivers and manages the application's user interface and resources. It also provides application programming interfaces (APIs) and higher-level services.
- View System: Used to design and build the application's user interface
- Location Manager: Provides access to the system's location services.
- Content Providers: Control access to a central repository of data where users can store and fetch data.
- Package Manager:: Manages applications installed on an Android device.
- Telephony Manager: Provides information about functionalities such as the state of the phone, connections, network, etc.
- Resource Manager: used for creating, grouping, managing, and using resources in an application.
- Activity Manager: controls the activity lifecycle and gives information on running tasks and available memory.
- Notification Manager:enables applications to display notifications and alerts in the status bar.
- Window Manager:This is used to manage all the windows created by various applications that share the screen.
This consists of C/C++ core libraries and Java libraries that are used to support Android development.
Below are details about some important Android libraries that are available for Android development:
- The media library is used for editing, recording, and playing various audio and video formats.
- OpenGL and SGL are used for drawing and manipulating 2D and 3D graphics in an application.
- SQLite provides database support.
- FreeType provides font support.
- WebKit offers browser support.
- SSL(Secure Socket Layer) is a security technology that creates an encrypted link between a web server and a web browser.
- Libc: This is shorthand for the C library. It is used to provide an implementation of the C standard library.
- Surface Manager: controls and manages access to the display subsystem
4. Android Runtime
This is a very important part of Android. It consists of core libraries and the Dalvik Virtual Machine (DVM). The core libraries enable the development of Android applications using the Java programming language. The DVM is specially designed and optimized to allow multiple instances to run on Android devices. It relies on the Linux kernel to handle low-level management and threading.
5. Linux Kernel
Linux kernel is the foundation of android Architecture as it resides at the bottom layer of the system. It handles the management of all the drivers needed during the runtime of an Android device and provides an abstraction layer between the device hardware and the components of the Android architecture.
- Wifi Driver enables user devices find and connect to wireless connections.
- Camera Driver interacts with camera hardware
- Display Driver enables the Android operating system to work with the graphics hardware.
- Bluetooth Driver allows the Android operating system to communicate with a Bluetooth device.
- USB Driver enables easy transfer of files from an Android phone to computer system
- Audio Driver enables the Android operating system to communicate with audio devices such as speakers, headsets,etc.
With this article at OpenGenus, you must have the complete idea of Architecture of Android OS.