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…

Trackbacks & Pings

  1. 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 [...]

  2. buzz on 15 Nov 2007 at 6:25 pm

    Putting The Android SDK In Perspective…

    To hype ??? ??????(?)….

  3. 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 [...]

Comments

  1. Asam Bashir wrote:

    One point to always keep in mind when we’re thinking about consumer applications like mobile phones, they don’t really need elegant APIs or really slick and cool SDKs, how the developers use these tools is irrelavent, what counts in the consumer market is the final human user interface. A lot of open source developers always forget this, it’s not an SDK that’ll sell phones, it will be the final layer of the human interface - an area Apple is King and where all others attempt to follow.

    To imagine that the dock represents all of the user interface in Mac OS X would also seem to be ill-informed - most of us pro-users hardy use the dock, I never even touch it but keep it small and minimised because I find it useful to know at a glance my open applications.

    If you want to really see the state of human interface art with purpose on Mac OS X, I would suggest you try QuickSilver,

    http://www.youtube.com/watch?v=EBvFUhTqKK4

    http://docs.blacktree.com/quicksilver/what_is_quicksilver

  2. Asam Bashir wrote:

    Has Sun ever made a descent GUI? I’m just trying to think and can’t find any good examples, Open Office looks hideous, 3D Looking Glass looked advanced for Sun but when I tried it was reminded of a third-party Finder replacement they had for Mac OS X which made files appear in 3D and you could whirl them around and navigate, intresting for a few minutes if you never played Doom, but practically useless…

  3. simon wrote:

    It’s true that it’s not the SDK that sells phones… but to build the compelling features, with great human interfaces, that sell phones requires software developers to implement the software parts of these features. And to do that, developers requires APIs. So the APIs are critically important.

    It’s true that historically, Apple has been a leader, and pioneer, in human-device interaction. It’s equally true that historically, much Sun software has had terrible user-interfaces. It’s a similar story with with Google software, actually. Sun at least recognises that they have been historically weak in this area. Not sure if Google does.

    However, I think Apple may have really dropped the ball with their iPhone business model. We’ll need to see how sales ramp up over the coming quarters to know if that view is right or not.

    If it is right, then Apple’s mobile business will not accelerate as fast as it could; and gives current mobile leaders, like Nokia, a chance to raise their games; and players with new OS platforms like Sun and Google to play catch up…

    It’s worth noting in that regard that both JavaFX Mobile and Android have pretty advanced user interface toolkits. With the right developers building out feature sets, both platforms can have amazing user interfaces.

  4. Jon wrote:

    No one has done this before… except Research In Motion. A huge portion of the current BlackBerry stack is written in Java, including most of the standard BlackBerry applications.

  5. Chris Ryland wrote:

    Why do you think that Java as the basis for the Gphone is a big win in any way, shape or form? It’s just another verbose static language with a huge corporate flavor.

    What people don’t realize in the industry is that Objective-C+Cocoa is a truly dynamic language (think Smalltalk) married to a very mature and very capable GUI. It’s truly Apple’s secret weapon for rapid and best-of-breed app development, but it’s a completely open secret that no one seems to get.

  6. simon wrote:

    @Chris - I think you’ve answered your own question.

    You might think Java is “just another verbose static language with a huge corporate flavour” (although I think that’s a bit of a meaningless statement to make; made all the more meaningless given that you’re a fan of Objective-C and Smalltalk, from which so many aspects of Java were inspired). The point, however, is this: there are over five billion devices in the world that can be programmed by using Java, and there are millions of Java developers. So, if you are building a new device, it makes a huge amount of sense to leverage all those existing developer skills and experience.

    Contrast that with the number of Objective-C/Cocoa developers and the number of devices current deployed that can be programmed using Objective-C and Cocoa. There aren’t many of either. So, if you release a device that can be programmed by using Objective-C/Cocoa, very few developers are either going to care, or even if they do care, they won’t have any experience with any aspect of the technology. Apple has not succeeded in building a large developer community around its technology; and the company’s attitude towards sharing information with developers suggests it never will.

    That doesn’t mean Objective-C/Cocoa aren’t good pieces of technology. They are. It’s not a secret. Everyone gets it. It’s just that almost no-one is interested.

    @Jon - Great point about Blackberries.

  7. David wrote:

    Well, for the last 5 years or so Sun didn’t see to make any efforts *at all* to update their mobile platform. Support in most mobile phones is quite crappy and varies a lot from model to model. So I think if Google is able to standardize it and get several manufacturers to use the same SDK and software, then they will obliterate Sun.

    It doesn’t matter how advanced a platform is, but rather how popular. Remember Betamax vs. VHS.

    Cheers.

  8. simon wrote:

    David, that’s not quite right. For example, JSR-248 (MSA) is all about reducing fragmentation of the Java ME platform - with different manufacturers working together to try to make their JSR-248 implementations interoperable.

    Java ME is on around 90% of mobile phones in use today. Android has a long way to go…

  9. Christoph Jaggi wrote:

    Esmertec is member of the Open Handset Alliance and is making its Jbed “Java” Virtual Machine available for Android on a commercial basis

    http://www.esmertec.com/solutions/mobile_multimedia/android_platform/index.shtml

    http://www.esmertec.com/solutions/mobile_multimedia/jbed_cdc/

  10. Asam Bashir wrote:

    Simon@3 said, “The point, however, is this: there are over five billion devices in the world that can be programmed by using Java, and there are millions of Java developers.”

    So what if there are five billion Java devices in the world, if people decided to not buy Java phones next time they upgrade that figure could vanish in less the six months. Even with all these Java developers have any of them produced anything that comes even close to Apple standard of human interface?

    Simon continues, “However, I think Apple may have really dropped the ball with their iPhone business model. We’ll need to see how sales ramp up over the coming quarters to know if that view is right or not.”

    Hey, like I said before, this is Plan A, and what ever you think it’s meeting Apple’s own goals. When it stops meeting Apples goal then it could turn to Plan B, release unlocked phones world-wide and make a killing on global sales, and that’s just with iPhone rev 1, in less then 5 months it’s changed the whole phone industry so that only now has an adequote rival for iPhone X begun to emerge. Apple has been working secretly on this project for the last five years, Google has been at it for a few months….

    Finally Simon says, “If it is right, then Apple’s mobile business will not accelerate as fast as it could; and gives current mobile leaders, like Nokia, a chance to raise their games; and players with new OS platforms like Sun and Google to play catch up…”

    Sun will never catch up, why, simple, because it has zero real-world consumer human interface understanding, it would need 20 years of producing consumer orientated products to even come close to Apple’s expertise….

  11. Asam Bashir wrote:

    If you want to look at how marketshare can change in a matter of a few months, take a look at the new figures coming out for desktop OS share in Japan, Apple is wiping the board and currently at 60 % marketshare, an incredible and profound change in global mind-set. The killer product for Japan hasn’t even been released yet, that will mark the death-bed for Windows in Japan at least, ultra-compact form factor SSD based machine on schedule for release at MacWorld Expo, San Fran Jan 2008…

  12. simon wrote:

    Asam said, “if people decided to not buy Java phones next time they upgrade that figure could vanish in less the six months”

    True. Let’s see if Apple sells a billion iPhones during the next six months then ;-) I predict it won’t…

    Asam said, “Sun will never catch up, why, simple, because it has zero real-world consumer human interface understanding, it would need 20 years of producing consumer orientated products to even come close to Apple’s expertise…”

    Apple should be in strong position here, I agree. However, it’s worth noting that Sun is not trying to build phone hardware. Rather, they’re hoping to license the JavaFX Mobile OS platform to the big players like Samsung, Nokia, Sony Ericsson etc.

    Asam said, “If you want to look at how marketshare can change in a matter of a few months, take a look at the new figures coming out for desktop OS share in Japan, Apple is wiping the board and currently at 60 % marketshare,”

    Well, not really. In fact, not even close. Those figures are percentage market share for sales of shrinked-wrapped boxes with an OS DVD inside, during the time when Leopard was released. This represents a zero percent real change in desktop OS market share.

  13. Asam Bashir wrote:

    In response to Simon, “Apple should be in strong position here, I agree. However, it’s worth noting that Sun is not trying to build phone hardware. Rather, they’re hoping to license the JavaFX Mobile OS platform to the big players like Samsung, Nokia, Sony Ericsson etc.”

    So you don’t see the most fundamental problem here? Sun with zero consumer level human interface experience, marketing a product to developers who will now try to adapt there brands of user interface to JavaFX - fools leading more fools? Problem with current phone is not the core OS, S60 3rd edition for example is an excellent implementation of Simbian, it’s Nokia and SE’s awful user interfaces that make the phones such a pain to use. How are Nokia and SE going to suddenly start making interfaces with the profound insight Apple has? By throwing money on it? Nope, MS has done that a million times and that does not work….

    PS, where is Google going to for deep human user interface insight? Like, who has it been working with on it’s Google apps?

    I have a simple message for all Java developers, guys you need to wise up and learn how a really good human interface works, the only way you’ll be able to do this is to go buy a Mac and an iPhone…

  14. simon wrote:

    Asam said, How are Nokia and SE going to suddenly start making interfaces with the profound insight Apple has?”

    I actually think this is where something like JavaFX Mobile can help the big handset manufacturers. The big advantage of the iPhone form factor is that 90% of the interface is software, and can be upgraded remotely in the field via iTunes updates. Phones built around JavaFX mobile could have similar advantages.

    Why could that that help? Because it means the manufacturers don’t have to get everything right first time, and a core strength of JavaFX Mobile, if Sun executes well, will be that it will be the easiest of all mobile platforms to build super-compelling user interfaces via JavaFX Script. However - it’s not out yet, so we’ll have to wait and see how well it turns out - the guys at Sun have really got their work cut out for them bringing all the consumer Java stuff together.

    Asam said, “PS where is Google going to for deep human user interface insight? Like, who has it been working with on its Google apps?”

    Not sure they’re going to anyone. Apple writes the “Google” apps for iPhone, not Google.

    Asam said, “Java developers, guys you need to wise up and learn how a really good human interface works, the only way you’ll be able to do this is to go buy a Mac and an iPhone…”

    Not sure why you single out Java developers. Developers in general often have a poor understanding of user interface design. This is partly what’s led to the new trends in tooling that allow graphics interaction designers to put interfaces together, while developers write code that hooks into the interfaces.

    It’s a reasonable way of working… except: “graphics interaction designers” usually know as much about user interface design as developers do (i.e. not much); and also that probably 90% of all software development projects don’t have the budget to allow development of really compelling interfaces.

  15. Mr X wrote:

    One interesting aspect of the Android platform is the design - Activities and Intents. Activities are addressable parts of an application - Intents a decoupled way of addressing them.

    Essentially they have learned that one of the benefits of the nature of the web platform is it leads to easy decomposition of applications with addressable parts - generally easy to link directly to a specific part of an app - say compose email or read a specific message - web applications tended to be built on a screen by screen basis.

    Also as most web apps are fairly stateless ( on the client ) how to construct a web page in a certain state is fairly simple as the parameters go into the network call.

  16. simon wrote:

    That is an interesting way of doing things. It needs some thinking about though -at least, I feel that I need to think about it some more. My instinct is that, while it’s nice, it’s not actually going to be a critical success factor.

    I don’t under-estimate the points you make about web apps - they are important. Rather, I think there’s something that’s more important: that is, the “zero install” nature of web apps.

    So, I suspect the phone software platforms that will succeed big-time are those that can deploy rich applications with no manual installation steps and zero admin for updating to new versions. Not sure how Android deals with that (if indeed it does deal with it at all). Compare that to Flash (and Flash Lite), and Java SE applets. The former work pretty well today, that latter is starting to look like it might work pretty well (perhaps even on JavaFX Mobile phones) in 2008. There’s a big opportunity for the consumer JavaFX Mobile/Java SE guys to do something amazing, if the phone hardware is up to it - but it will need top-end CPUs, like the iPhone has.

    Also, even having said that, the software platform isn’t even close to being the whole story. The device hardware is also critically important. Post-iPhone, the mobile phone world has changed - consumer device designers really have to up their games now. I can see Android and JavaFX Mobile phones easily ending up being like Amazon’s new Kindle (e-book reader). That is - good ideas, but just incredibly poorly executed…

  17. Mr X wrote:

    What is an operating system beyond the hardware abstraction layers for screen, input, memory, storage etc? It’s an attempt at an integrated user experience.

    However if you critically look at OS’s today then they really haven’t moved that far from the innovation of cut&paste and drag&drop implemented for quite simple data types, and a fairly unsophisticated linking of data with applications using extensions!

    The web on the one hand has made it much easier to *code* adhoc application integration, on the other hand has made it harder for end user driven resuse - look at the difficulty with cut and paste of web content. Though another great invention which is under valued is the use of mime-types and handlers.

    It’s a fundamentally hard problem - hence the failure of things like publish and subscribe, open doc etc.

    An interesting approach is taken by things like Enzo and Apple’s Automator - essentially recognise that creating easy workflows actually does require some coding - the aim should be to make that coding as easy a possible so the end user can do it - essentially a unix type approach. ( Doomed to invent and all that )

    I agree that zero install is important, but I also think it’s easily fixable - what’s hard, but what frustrates people and frankly what sold the iPod to a large degree is all this messing about people have to do copying this to that, reformatting, ripping, importing, exporting .

    ie if I want to put this address in this email in my contacts, why do I have to retype the damn thing? Apple have actually addressed this much better in Leopard.

    If the android platform makes it easy for developers to make it easy for end-users to install programs which make it easy to synch their desktop picture with some online account - that google has no interest in - then they will have succeeded.

  18. Asam Bashir wrote:

    http://developers.slashdot.org/article.pl?sid=08/01/08/0348239

    “Professors Slam Java As “Damaging” To Students”

  19. simon wrote:

    Wow, Asam - that is hilarious! I may have to blog about it. The authors of the article have their Ada agenda to push. I assume they’re frustrated that students aren’t being taught to program in Ada; and that there’s close to zero demand for Ada programming/software.

    There is nothing about Java that should lead to the kind of problems these people say they’ve observed. The kind of problems they’ve observed are due to low quality students and/or low quality teaching.

Post a Comment

Your email is never published nor shared. Required fields are marked *

*

*