Today, the name Android operating system has become synonymous with a handheld device which can show movies, allow one to talk to another person, send messages, pictures, emails, play games and let you stay in touch with everybody.
Android is perhaps one of the most used Operating System cum framework available for what we call smartphones today. And it is poised to become an all-encompassing framework which will be used not only on simple hand held devices like smart phones 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 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 built in Java running on Dalvik Runtime Engine
- System Library written on C and C++
- Kernel based on Linux
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 Smart phones
Java is a proven technology, portable on different software and hardware platform. Java is already available on majority of the mobile phones. Current Java on mobile (J2ME) have a lot of limitation, so major mobile phone company 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 build 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 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 build 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 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 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 build using Linux operating system too. By technical point of view, Android using Java over Linux is a smart move. Both Java and Linux are proven technology, and provide portability for mobile application on Android platform.
Google has given a sneak peak of a new version of Android OS i.e. Version 3.0 named as Honeycomb. The specialty of this version is that it is specially designed for tablet PCs. Motorola Xoom is the first Tablet PC running this OS.