Mobile OS a very small history, they started making their mark as Desktop OS were taking the lead. World has seen the Mobile OS from the small mobile handsets to smart phone from Personal Digital assistance (PDA) to tablets. There are many such operating systems we see in the markets such as Symbian, windows, iOS, RIM, Ubuntu, Firefox OS and Android. It’s nothing wrong to say that Android is popular of all the mobile operating system which were listed. Android OS is a product of Android INC, Palo Alto, California US started in the year 2003, and later in 2005 it is acquired by Google.
Android is Linux based OS, we can say modified Linux. Linux kernel got device drivers(programs to communicate with hardware) compatible for Desktop PCs, where Android OS kernel got the device drivers modified for mobile devices. So Android is open source product, its source code is released by Google under open source license. It’s this nature of the android, which grabbed the attention of many developers around the world and it is adopted by the technology companies for their devices. There is no doubt that Android is the fastest grown mobile operating system since its inception because of its open source nature and rich community of developers, and enthusiast.
Android is preferable platform for developers, beginners, users when compared to other operating system. It’s not just the open source nature of Android that make it popular(as Firefox and Ubuntu belongs to same category), it’s the rich documents from Google, large community of developers and massive market of android devices and its rich app make which it a largest platform of all. Now you can find Android OS in most the electronics devices such as mobile, tablet, TV, watch etc. So this is the reason why developers should care about developing Android
After its original realease, Android is released with many updates, the major release are:
Android Version | Name |
Android 2.2 | Froyo |
Android 2,3 | GingerBread |
Android 3.0 | Honeycomb |
Android 4.0 | Ice cream sandwidth |
Android 4.2 | Jelly Bean |
Android 4.4 | Kitkat |
Android Operating System:
The basic architecture of the android is very much similar to that of Unix, where the user application interact with the device hardware using kernel(device drivers) and rich such of libraries and runtime. Below figure shows the architecture of Linux.
Basically it consists of 4 blocks such as Applicationsm Application framework, libraries & runtime and Linux kernel. Details of each of these blocks are explained in brief.
So let’s start from the bottom to top.
Linux Kernel
Android kernel is built on the Linux 2.6 kernel modifyin some of its features. Linux kernel is the layer which consists of the hardware drivers. These hardware drivers acts as an interface between the programs and hardware components. In simple words we can say that it a abstract layer that let the software’s to talk with the hardwares. It includes most of the functionality that any operating system do such as process management, resource management, memory management, security settings.
Libraries and Runtime :
Android provides the rich set of libraries which can carry out the necessary tasks such as storage, graphics etc. Librabies include
SQLite :- data storage engine for storing the data
OpenGL :- for rendering 2D and 3D objects
SSL:- For security
Media Framework:- for handling media on the device such as Audio and Video playback
Web Toolkit:- for the display of HTML and web content on the device
Runtime includes Dalvik VM(Virtual Machines) and corelib, as we know to run any Java application we need JVM(Java Virtual Machines) as the JVM can run the .class file, but here in case of android, it need to run the .dex file. .dex file is are built from the .class file. Dalvik VM is required to run these .dex file. .dex file are efficient and works at higher speed as compared with the .class file. Dalvik VM allows to create multiple instances of virtual machine to run the multiple program simultaneously.
CoreLib includes the Java librabies required to perfrom basic actions smiliar to Java.
Application Framework:
This block manages the basic functionality of the phone such as application activity management, voice call management, location related tasks, resource management etc.
All the application go through the activity life cycle which we will see later in the tutorial, basic phone related tasks such as phone call manager and others are handled by the application framework.
Application:
Applications are the top layer of the android architecture with which the android user can directly interact. It consists of all basic phone related operations such as SMS, phone call, contact manager or any user applications such as games or apps.
This is all about the basic introduction of the Android operating system, we will see to use the Application framework to develop the native apps for this opearting system and devices in the coming tutorials