The Android OS
By Bersyte, Published on September 09, 2020
Android OS is a mobile operating system that is based on a modified version of Linux. It was originally developed by a startup of the same name, Android, Inc.
The Android OS was born as the child of the Android Inc. company in 2003 and was later acquired by Google LLC in 2005. As a part of its strategy to enter the mobile world, Google purchased Android, Inc. and took over its development work (as well as its development team).
Google wanted the Android OS to be open and free, so most of the Android code was released under the open-source Apache License. That means anyone who wants to use Android can do it, by downloading the full Android source code.
The first device running Android came on the market in 2008. Since it has had numerous updates, with the latest version number at the middle of 2020 reading 11.
Ever since its first build, the market share of the Android OS has been constantly increasing, and by 2020it is said to be greater than 74 percent. Even though the numbers vary with the sources you use, the success of Android OS is surely undeniable.
This victory partly has its roots in Google LLC being a clever player in the worldwide smartphone market, but it also comes from the Android OS carefully being tailored to match the needs of smartphones and other handheld or handheld-like devices.
The Android Operating System
Android is based on a specially tailored Linux kernel. This kernel provides all the low-level drivers needed to address the hardware, the program execution environment, and low-level communication channels.
On top of the kernel you will find the Android Runtime (ART) and a couple of low-level libraries written in C. The latter serve as a glue between application-related libraries and the kernel. The Android Runtime is the execution engine where Android programs run.
Above all the low-level libraries and the Android Runtime sits the application framework, which defines the outer structure of any app you build for Android. It deals with activities, GUI widgets, notifications, resources, and so on.
While understanding the low-level libraries certainly helps you to write good programs, knowing the application framework is essential to writing any Android app at all.
Architecture of Android
The Android OS is rough divided into five (5) sections into four main layers:
- Linux kernel – This is the kernel on which Android is based. This layer contains all the low-level device drivers for the various hardware components of an Android device.
- Libraries – These contain the code that provides the main features of an Android OS. For example, the SQLite Library provides database support so that an application can use it for data storage. The WebKit library provides functionalities for web browsing.
- Android runtime – The android runtime is located in the same layer with the libraries and provides a set of core libraries that enable developers to write Android apps using Kotlin or Java.
- Application framework – The application framework exposes the various capabilities of the Android Os to application developers so that they can make use of them in their applications.
- Applications – At this top layer are the applications that ship with theAndroid device (such as Phone, Contacts, Browser, and so on), as well as applications that you download and install from the Android Market. A by applications that you write are located at this layer.
Features of Android
Because Android is open source and freely available to manufacturers for customization, there are no fixed hardware or software configurations. However, the base Android OS supports many features, including:
- Storage – SQLite, a lightweight relational database, for data storage
- Connectivity – GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth (includes A2DP and AVRCP), Wi-Fi, LTE, and WiMAX.
- Messaging – Both SMS and MMS.
- Media Support – H.263, H.264 (in 3GP or MP4 container), MPEG-4 SP, AMR-WB (IN 3GP container), MP3, MIDI, WAV, JPEG, PNG, GIF, and BMP.
- Hardware support – Accelerometer sensor, camera, digital compass, proximity sensor, and GPS.
- Multi-touch – Multi-touch screens.
- Multi-tasking – Multi-tasking applications
- Tethering – Sharing of Internet connections as a wired/wireless hotspot.
Android has gone through quite a number of updates since its first release. The picture shows all versions of Android until now (2020) and their codenames.
One important thing to keep in mind as you are looking at Android OS versions is that each version has its own features and APIs (applications programming interfaces). Therefore, if your application is written for the newest version of Android, and it uses an API that was not present in an older version of Android, then only devices running that newer version of Android will be able to use your application.
The main advantage of adopting the Android OS is that it offers a unified approach to application development. Developers need only develop for Android in general, and their application should be able to run on numerous different devices, as long as the devices are powered using Android. In the world of smartphones, applications are the most important part of the success chain.