If someone asked you what Android was, perhaps the first thing that would come to mind is that it is a mobile phone. If you’re more knowledgeable, then you may even be able to say what the latest version is of the mobile operating system. But have you really answered the question? I don’t think so. Do you want to know what Android is?what Android Architecture looks like? Let’s look at the definition.
Android is a global operating system. It is active on more than two billion devices. It is powerful and very popular – with a majority of the market share. It has changed the way people use mobile phones. Not only do people Android devices to call and connect with others, but also for entertainment. Lastly, it is not restricted to mobile devices anymore. Today, Android even runs on network-based, or network capable devices, which include TVs and wearable watches. It is a solid platform that is cost-effective and easy to use.
Android is an operating system with a rich application framework. It is easy to make innovative and creative apps on it. Technopedia defines an ‘application framework’ as “a software library that provides a fundamental structure to support the development of applications for a specific environment. An application framework acts as a skeletal support to build an application.”
Android supports both Java and Kotlin (programming languages for apps). To build apps, Android developers must have complete understanding of the following:
- An Integrated Development Environment (IDE).
- Android Software Development Kit, which is a part of Android Studio IDE.
A developer or group of developers can make Android apps using its core libraries, which is open source and free to use. This makes it popular among developers as it is to build and update apps without having to procure any licenses.
Here are a few exciting features of Android:
- It is an open-source platform.
- Supports an embedded browser built on WebKit.
- Boasts many connectivity options like wifi, Bluetooth and wireless data (such as GPRS, EDGE, GPS and 3G).
- Supports many applications to link with like Google Maps to display address, location-based services (GPS) and accelerometer.
- Addresses the graphic challenge with built-in support for 2D and 3D graphics, including openGL library.
- Easy storage support in open-source SQLite database.
- Supports inter-app integration and interphone data switching (which means data can be transferred from ios to Android).
- Provides high security with Google Play protect.
Android Architecture Components
This is the foundation layer. It consists of two parts namely power management and drivers. This layer is responsible for all the power management and driver related issues. Because Android is a Linux-based operating system, it benefits from its key security features and hardware drivers.
Hardware Abstraction Layer (HAL)
HAL is the second layer in the Android architecture. It provides various interfaces through which we can access the different hardware of the system like (camera, bluetooth, etc,). The name is self-explanatory. It is obvious that this layer has all the abstracted hardware components (Core java Concept). Abstraction is defined as the mechanism of hiding the essential details”. Whenever the framework API call happens to access any hardware then the Android system loads its library.
Android Runtime (ART)
ART is a special kind of tool which is used to execute the Android apps. Prior to Android 5.0 (API level 21) ART was known as DALVIK which made use of Dalvik Virtual Machine (DVM) to execute the code. This layer consists of two things – ART and core libraries.
- Native C/C++ Libraries
This layer consists of native C/C++ libraries that can be used on the platform. Code for components like HAL, ART, etc., are written using these native libraries. The code is written in one of these languages because they are faster than Java.
- Java API Framework
This layer provides Java’s API framework to the applications so that it can use all the features of Android to build creative and innovative applications. Here, API stands for Application Program Interface. API is the set of functions or procedures that allow for the creation of applications by accessing the data and the unique features of an operating system and other services.
In simple words, while writing any C program then we used to start with #include<stdio.h>. This can be related to API as this library allows us to use certain features that provide many input output functions like printf() and scanf().
We also have manager section in this layer which helps us to manage the following:
- Resource Manager provides access to non-code related things like layouts, widgets, etc.
- Notification Manager enables to display custom alerts in status bar.
- Activity Manager manages the lifecycle of an Activity.
System apps are those apps that are built-in to your phone, which cannot be deleted. It is as important as a layer. For example, Truecaller uses contacts app to feed the contact details, Facebook uses messaging app to feed incoming and outgoing messages, etc.
Hope this blog article helped you understand Android’s architecture