Fri, 21 Dec 2007 17:24:57
Googles Android: It is pretty, but is it Java?
I spent Monday at the Google HQ in London, listening in on, and catching up with an old friend and college from a previous life, Dick Wall. As an early podcaster (check out Java Posse) and Java heavyweight, he has more recently become known as a technology evangelist for Googles Android programme. As he was passing through London, he gave a technical seminar on getting started with Android. Android is essentially a custom JVM (called Dalvik), written on top of Mobile Linux v2.6 (see Nick Herriots blog for more on this), together with a Java application framework and libraries to provide a Java-based embedded run-time environment for mobile devices.
The framework has a technical elegance that would make Spock weep. You do not so much write programs to run on Android, as create processes (Activities) that will come in and out of user focus at any point in the Systems lifecycle. This focus may be user initiated or event (Intent) triggered, from other Activities resident or remote to your device. In doing so, an Intent carries its state in a Bundle (a data-map). Activities are started and stopped as needed to run an applications components (ie: the OS/JVM rules) moving your Activities through a set of state transitions. For those of you with an enterprise architecture background, this is a kind of mini-ESB inside a mini-SoA.
Location-wise, Android offers two relevant Java class packages, Location and Maps:
Android is currently emulator-ware, and will remain so until H2-2008, when Google is promising the first Android driven device, most likely from HTC. Finally, to paraphrase the It is beautiful, but is it art? in my title, Google currently has a naming problem. If you are coding on a custom JVM, and not including the full Java library set, you are going to want to avoid the issues that Microsoft went through in 1996 by calling it Java, until you have Suns blessing. Until such time, the statement is that Android uses the Java language. Over time I imagine this may ultimately manifest as another mobile profile variant of Java, optimised for a certain class of device.
The framework has a technical elegance that would make Spock weep. You do not so much write programs to run on Android, as create processes (Activities) that will come in and out of user focus at any point in the Systems lifecycle. This focus may be user initiated or event (Intent) triggered, from other Activities resident or remote to your device. In doing so, an Intent carries its state in a Bundle (a data-map). Activities are started and stopped as needed to run an applications components (ie: the OS/JVM rules) moving your Activities through a set of state transitions. For those of you with an enterprise architecture background, this is a kind of mini-ESB inside a mini-SoA.
Location-wise, Android offers two relevant Java class packages, Location and Maps:
- Location provides access to the location and bearing of the device, if the underlying hardware supports this. There is very slick emulator integration with a KML file, so that you can create a predefined path in Google Earth, and have your Android application follow this emulated path from within the Eclipse plug-in.
- Maps provides access to a rendered map (MapView), as in Google Maps Mobile, allowing your application to control the position, zooming and overlay of content, as though the map was a part of your own Android application.
Android is currently emulator-ware, and will remain so until H2-2008, when Google is promising the first Android driven device, most likely from HTC. Finally, to paraphrase the It is beautiful, but is it art? in my title, Google currently has a naming problem. If you are coding on a custom JVM, and not including the full Java library set, you are going to want to avoid the issues that Microsoft went through in 1996 by calling it Java, until you have Suns blessing. Until such time, the statement is that Android uses the Java language. Over time I imagine this may ultimately manifest as another mobile profile variant of Java, optimised for a certain class of device.



No, I haven?t just discovered moisturising crème for plastic: The Nokia N95 (see sidebar link for a review) is fast becoming the European poster child for an emerging market in
Here in Newbury (home to the Vodafone HQ), our local council have a potentially useful scheme to report graffiti, burnt out vehicles, fly tipping, dumped supermarket trolleys and the like. You just send an email to streetcare@westberks.gov.uk to report the incident, and they will schedule a trip out to collect and/or clean up.