Wednesday, March 2, 2011

What is Android - a GPhone?

The weeks and months before Google released the Android SDK there
had been a lot of rumors about a so called GPhone. It was said to be a
mobile device manufactured by Google providing free communication by
showing context-sensitive advertisements to the user on the device itself.


Picture 1 Render of a potential GPhone



But on November 5th 2007 Andy Rubin2 announced:

            "[The] Android [Platform] - is more significant and ambitious than a single phone." 
Google within the Open Handset Alliance (OHA) delivers a complete set of software for mobile devices: an operating system, middleware and key mobile applications. What was released a week later was not a final product, but a "First Look SDK" what many did not realize. Major news sites grabbed the discomforts of some developers who said that Android is full of bugs and heavily lacks of documentation. But the majority says that Android is not buggier than any other software at this stage.

Android from above
Let's take a look at what the OHA emphasizes on its Android Platform:

Openness

    "Android was built from the ground-up to enable developers to create 
     compelling mobile applications that   take full advantage of all a 
     handset has to offer. It is built to be truly open. For example, an 
     application could call upon any of the phone's core functionality such 
     as making calls, sending text messages, or using the camera, allowing 
     developers to create richer and more cohesive experiences for users." 

This is true, as a developer you can do everything, from sending short
messages with just 2 lines of code, up to replacing even the HOME-
Screen of your device. One could easily create a fully customized
operating system within weeks, providing no more of Google's default
application to the user.

    "Android is built on the open Linux Kernel. Furthermore, it utilizes a 
     custom virtual machine that has been designed to optimize memory 
     and hardware resources in a mobile environment. Android will 
     be open source; it can be liberally extended to incorporate new cutting
     edge technologies as they emerge. The platform will continue to 
     evolve as the developer community works together to build innovative
     mobile applications."

Here Google is talking of the so called Dalvik virtual machine (DalvikVM),
which is a register based virtual machine, designed and written by Dan
Bornstein and some other Google engineers, to be an important part of
the Android platform. In the words "register based" we find the first
difference to normal Java virtual machines (JVM) which are stack based.
See the "Dalvik.equals(Java) == false"-chapter for more details on that
issue.