X
Business

Google Dalvik Virtual Machine Goes Head to Head With Java & .NET

Google’s Android software ‘stack’ for mobile devices appears to be underpinned by a more substantially game-changing technology than at first thought in the form of the Google Dalvik virtual machine. Android includes an operating system, middleware and a set of core applications with reusable components and on the surface is billed as being capable of running Java applications on mobile phones under the Apache Licence 2.
Written by Adrian Bridgwater, Contributor

Google’s Android software ‘stack’ for mobile devices appears to be underpinned by a more substantially game-changing technology than at first thought in the form of the Google Dalvik virtual machine. Android includes an operating system, middleware and a set of core applications with reusable components and on the surface is billed as being capable of running Java applications on mobile phones under the Apache Licence 2. Below this however is Dalvik, Google’s own virtual machine that compiles Java applications into Dalvik bytecode rather than Java bytecode.

In the fight for total application development ownership, this puts Google more firmly in the driving seat than may have been inferred by the company’s initial official positioning on Android. At its launch, Google stated that its reason for developing Android was to enable the company to scoop up advertising revenue from mobile Internet and online Java application usage. Closer inspection suggests that Google has in fact made efforts to distance itself from the Java (ME) Micro Edition.

To achieve this autonomy, Android employs the syntax of the Java language and presents developers with a structure and IDE that they will be comfortable with. Android’s next trick is to side-step SUN’s Java SE class library and instead use Apache’s Harmony. This unshackles Google from the responsibility of having to adhere to the Java Community Process for any changes to the Java ME standard.

“Google's use of its own code is no secret. I was at Google on Monday with Android co-founder Andy Rubin and he freely explained this without prompting. It means a two-step compile but when converted to Google byte code, which is ARM-oriented, the code will run ten times faster. Java byte code is not optimised for a particular processor but in the phone world everything is ARM-based. It's a bit inconvenient on the compile side but you can still use Java,” said Ken Dulaney, VP Distinguished Analyst, Gartner.

Buying itself so much extra freedom to breathe arguably allows Google to win more hearts and minds within the developer community and potentially seeds its own technology more deeply into a market segment set to expand exponentially. For developers, there is the opportunity to access what is said to be a more modern class library with support for OpenGL, Bluetooth, USB in the 3G space.

Editorial standards