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.



All applications are created equal
     "Android does not differentiate between the phone's core applications 
     and third-party applications. They can all be built to have equal access 
     to a phone's capabilities providing users with a broad spectrum of 
     applications and services. With devices built on the Android Platform,
     users will be able to fully tailor the phone to their interests. They can 
     swap out the phone's home screen, the style of the dialer, or any of 
     the applications. They can even instruct their phones to use their 
     favorite photo viewing application to handle the viewing of all 
     photos." 

Once again this is all true. Developers can 100% customize their Android-
Device. The Android System Communication is based on so called Intents,
which are more or less just a String (with some data attached) which
defines an action that needs to be handled. An example for this is:

          "android.provider.Telephony.SMS_RECEIVED"

One can simply listen on that Intent by writing about 5 lines of
definitions. The system would then recognize that there is more than one
application that wants to handle that Intent and ask the user to choose
which one he or she would like to handle the Intent.

Breaking down application boundaries
   "Android breaks down the barriers to building new and innovative 
     applications. For example, a developer can combine information 
     from the web with data on an individual's mobile phone - such as the user's 
     contacts, calendar, or geographic location - to provide a more relevant
     user experience. With Android, a developer could build an application 
     that enables users to view the location of their friends and be alerted 
     when they are in the vicinity giving them a chance to connect."

Fast & easy application development
    "Android provides access to a wide range of useful libraries and tools
     that can be used to build rich applications. For example, Android
     enables developers to obtain the location of the device, and allows 
     devices to communicate with one another enabling rich peer-to-peer 
     social applications. In addition, Android includes a full set of tools 
     that have been built from the ground up alongside the platform providing 
    developers with high productivity and deep insight into their applications." 

Since the Web 2.0 revolution, making content rich applications within
minutes is no more illusion. Android has brought developing to unknown
speeds. Let me provide an example:

Someday I stumbled over the Buzzword `DrivingDirections' within the
Android-Documentation.


                                                                 Thought - done. 
Picture 2 Google DrivingDirections implementation in Android
 The development process of the application in the picture above took
about 1½ hours! (Including the simple user interface and all images
you see). Could one create such a sophisticated application on any other
mobile-platform? - No.

Additionally this application could be enriched with the current GPS-
position of the device within a handful of code-lines.

Google emphasizes Androids power of providing location-based-services.
Google Maps are so neat within Android as if it was just developed for
Android. One can integrate a fully zoom and drag enabled map by adding
just 3(!) characters in the Java-Code of the Android-Default-Application and
3 lines of XML-Code.

Other nice features that are easy to use with Android are Animations and
media-playback. Since version m5, the Android SDK contains functions
for straight and reverse GeoCoding and in addition to mp3, playback of:
ogg-Vorbis, MIDI and a bunch of other

No comments:

Post a Comment