Android is one of the most popular Operating Systems for Smartphones on the market. It’s developed by the tech giant, Google. First released in 2007, this mobile platform has taken a bite out of iPhone, Blackberry and Windows Mobile to become one of the top-selling smartphones.
This article mainly focuses on the internal structure, working and components of Android OS.
Platform Architecture Components
- Linux kernel is the open source kernel,core of a OS,foundation of the Android platform.
- It’s the first program to be loaded on startup and it handles the rest of the startup process.
- The main functions of the kernel is memory management, handling network communications, allocating resources to different processes and providing flexibility to hardware manufacturers to build their own drivers on top of Linux kernel.
Hardware Abstract Layer:
- The Android Hardware Abstraction Layer (HAL) is an interface for hardware manufacturers to implement that allows the Android application/framework to communicate with hardware-specific device drivers.
- HAL is a manufacturer-specific layer implemented in the C/C++ language.
- The HAL implementation is hardware-specific and varies from vendor to vendor.
- The HAL consists of multiple library modules, each of which implements an interface for a specific type of hardware components, such as the camera or bluetooth module.
- When a framework API makes a call to access device hardware, the Android system loads the library module for that hardware component.
Android Runtime (ART)
- Android Runtime is an application runtime environment used by the Android operating system.
- ART performs the translation of the application’s bytecode into native instructions that are later executed by the device’s runtime environment.
- It was introduced in Android Lollipop, before that Dalvik Virtual Machine (DVM) was being used.
- It supports Ahead-Of-Time (AOT) and Just-In-Time (JIT) compilation.
- It provides a more optimized garbage collection.
Native C/C++ Libraries
Many important features are provided by Android framework through various native libraries written in C/C++.
Few of the libraries provided by the framework are –
- WebKit – Open source web browser engine.
- OpenGL – Cross-language, a cross-platform application programming interface for rendering 2D and 3D vector graphics.
- Secure Socket Layer (SSL) – Cryptographic protocols designed to provide communications security over a computer network.
Java API Framework
There are various APIs (Application Programmable Interfaces) written in Java available to the developer to leverage the features of Android OS.
Some of the interfaces provided by framework are –
- View System – To build an app’s UI, including lists, grids, text boxes, buttons, and web browser.
- Resource Manager – Provide access to non-code resources such as localized strings, graphics, and layout files.
- Activity Manager – Manages the lifecycle of apps and provides a common navigation back stack.
- Content Providers – Enable apps to access data from other apps, such as the Contacts app, or to share their own data.
- It is the top-most layer of the android architecture.
- Android OS comes with pre-installed core apps such as email, SMS messaging, calendars, internet browsing, contacts, and more
That’s all I have and thanks a lot for reading. Please let me know if any corrections/suggestions. Please do share and comments if you like the post. Thanks in advance… 😉
Thanks Shubham Pathak for helping us to grow day by day. He is passionate to develop the different apps and loves to solve challenging problem in Android.