Android operating system

Android is perhaps one of the most used Operating System plus framework available for what we call smartphones today.  And it is poised to become an all-encompassing framework that will be used not only on a simple handheld device like smartphones but its uses will also be on HDTV’s, Automotive Infotainment systems. Any system which will require a simple, elegant, and easy to develop User Interface might be built on the Android framework.

What is Android?

Android is a Mobile Operating System, developed By Android Inc. and now, marketed by Google. Google and other members of Open Handset Alliance collaborated on Android development and release. Its software stack and framework is built on Linux kernel, which has been very instrumental in its seamless acceptance as an OS of choice in Mobile phones. Android OS consists of over 12 million lines of code written in C / C++ / Java and XML. Android can be visualized basically as a framework of C C++ and Java libraries based on a Linux kernel. Because of this and the fact that Java apps can be effortlessly built through SDK’s the applications are portable on all mobile devices.

The Android system consists of 3 layered stacks:

Application Layer

Java language was chosen as the development language. There are a lot of mobile developers who are well versed in Java and hence can have a seamless transition to writing Mobile apps and widgets on Android-powered Smartphones Java is a proven technology, portable on different software and hardware platform. Java is already available on the majority of mobile phones. Current Java on mobile (J2ME) has a lot of limitations, so major mobile phone companies add in their own extension to the Java library, this makes portability of Java application on mobile more difficult. Normally Java was used to create Java games on mobile; many other applications are still built on the native OS and not on the Java layer. Sun has been pushing Java technology on mobiles for years, it was successfully deployed on most of the mobile phones, but lack of standardization made it difficult to reach the depths of the Mobile phone market. Android has a very reach and standardized set of API’s and libraries, developers can use those API to develop games and applications, integrate well into mobile phones, and Java will make Android application portable on all (Android) mobile phones. The Java program doesn’t run directly on Android; it is converted into Dalvik byte code. Basically Android can make any app run as long as it can be converted to Dalvik byte code.

The System Libraries

The system libraries on Android mainly built on C and C++, so they are fast and efficient. Since the library runs on top of the Linux kernel, there are a lot of drivers and libraries available which can be customized as per the vendor’s requirement.

The Linux Kernel

The Linux kernel was chosen because it was proven to be stable and powerful. Linux has good memory management, process management and already built in with many other functions like TCP/IP networking which is necessary for an operating system (especially you need it to connect to data network on your mobile). For a new hardware mobile manufacturer, the first thing to do for building an Android platform is to build the device driver on the Linux kernel; there should be a lot of developers around who have the know-how to build the software stack from scratch or customize it from the available software. There were a lot of companies trying to build a mobile phone operating system based on Linux kernel before Android did, but have not been very successful. Even Motorola and Nokia had released some mobile and internet devices which run on the Linux operating system, but they were not very successful as well, like the Motorola A series phone started with A760. Nokia has an Internet Table device (N770) which was built using the Linux operating system too. From a technical point of view, Android using Java over Linux is a smart move. Both Java and Linux are proven the technology and provide portability for mobile applications on the Android platform.