Putting The Android SDK In Perspective

The technical details of Android, the new Google mobile phone OS platform, are now out. There are many articles on the Web discussing the new platform, many of which seem to get things horribly wrong. So, I thought I’d try to put some perspective on Android here…
First, the web browser. At the Android launch, Eric Schmidt suggested that the Android web browser would somehow be revolutionary. It’s not. It’s just the same mobile web browser that’s found in millions of mobiles based on Nokia’s S60 platform, and on Apple iPhones. Some people have suggested that this means Android is inspired by the iPhone (although granted, the rather ugly-looking and silly little “dock” is obviously inspired by Apple’s Mac OS X desktop - don’t be fooled by this though - beautiful graphics are possible with Android). No. It just means that Google wanted a mobile web browser for Android, and there’s a pretty good Open Source one already out there.
However, it’s clear that the web browser is a bit of a red herring. The real story of Android is in the application SDK. Google realised years ago what Steve Jobs didn’t until a few weeks ago - mobile phones need SDKs . It’s a Java SDK, which is a great decision on Google’s part. That’s another big difference to Apple, by the way - Steve Jobs totally missed the point about Java on mobile phones (and maybe everywhere else too).
So, is the Android Java SDK anything new? The answer is yes - but not necessarily in the way that people think. I’ve seen people be impressed, for example, that it has a Location Based Services API, and a 3-D graphics API. There’s nothing new in that. Java ME already has these kind of capabilities - see, for example: JSR-179, The Location API; JSR-239, Java Binding for OpenGL ES; and JSR-184, Mobile 3D Graphics API. How well many of these features work are much more down to the mobile network providers and handset manufacturers than anything else. Google has a few challenges ahead of it to translate the technical capabilities of the platform into amazing devices that work well in the hands of consumers.
So, what is the big news about the SDK? It’s this. Android has integrated its Java-like platform deeply into the phone. In other words, it’s a native application platform for Android phones. No-one has done this before, and it will allow new types of application to be developed (Google has set aside $10M to give away to developers to stimulate development of such software - I hope young entrepreneurs use this opportunity, some great little companies could be started by following this path). It should be noted that Sun’s forthcoming mobile OS platform, JavaFX Mobile, is based around almost exactly the same concept. There are, however, significant differences between JavaFX Mobile and Android.
Google has chosen to go the route of effectively making their own version of Java, by writing keys parts in a non-standard way. For example, Android has a totally non-standard user interface toolkit. What this means is that applications written for Android have no chance of running anywhere else. Contrast that with JavaFX Mobile which will run Java SE, Java ME, and JavaFX Script. JavaFX Mobile phones will be able to run much more Java code out of the box… and importantly, Android will be able to run zero compiled Java applications out of the box - Google’s VM is not a Java platform VM, but rather a VM of their own design that runs their own so-called “Dalvik” bytecode. That is, with Android, Java is not compiled to Java bytecode.
So it’s clear. The big competitor to Android is Sun’s JavaFX Mobile. Android has chosen to go a non-standard route; whereas Sun has chosen to implement a full standard, desktop-class platform. Which is the better platform? The devil will be in the detail. I think, though, it comes down to this. If, and it’s a big “if”, Sun has managed to make the full desktop-class Java SE platform run well on mobile devices, JavaFX Mobile will be head and shoulders above Android - there would be almost no competition. However, if it doesn’t run so well e.g. because full desktop Java is too much of a stretch for mobile devices at the moment, then Android could easily win.
Details about JavaFX Mobile should emerge early in 2008 (similar to the Android details we have now - SDK, emulators, prototype hardware etc). At that point, we’ll really start to get a feel for how well JavaFX Mobile is going to work. If the technical hurdles are not insurmountable, Sun is actually in pole position here - and I’d imagine that the announcement of Android would be spurring the Java FX Mobile team on to redouble their efforts…
Java chapter in Android story on 14 Nov 2007 at 4:40 pm
[...] news”, unique and all. Here is a quote from Simon Brocklehurst’s post titled “Putting The Android SDK In Perspective” (read the whole piece, it’s very good): Android has integrated the Java platform [...]
buzz on 15 Nov 2007 at 6:25 pm
Putting The Android SDK In Perspective…
To hype ??? ??????(?)….
VisionMobile Forum :: The significance of Google’s Android on 25 Nov 2007 at 4:04 pm
[...] with the underlying Linux support package. In other words, the Java SE-like platform is a native application platform for Android phones. Symbian may arrogantly dismiss Android as yet another Linux initiative, but the breadth and depth [...]