Open source Java for Android? Don't bet on it

Industry observers aren't optimistic, despite chatter about the possibility in OpenJDK circles

Google's Android mobile software platform, as we know, has caused quite a conflict with Oracle, given Oracle's failed lawsuit that claimed Java-like Android infringed on Java patents and copyrights. But now, might Oracle and Google, or even just one of them, decide to formally develop an open source implementation of Java especially for Android?

Such an endeavor has been the subject of recent chatter on the OpenJDK online newsgroup. OpenJDK is the official, Oracle-sanctioned version of open source Java. Some observers say a version of OpenJDK for Android would bring Android development to the many millions of Java developers. Java applications could run on Android devices -- so might such a project get under way? From the looks of it, the answer right now would have to be no.

[ Oracle has shown JavaFX rich client software running on Android.| Think you know Java? Test your programming smarts in InfoWorld's Java IQ test. | For more Java news, subscribe to InfoWorld's Enterprise Java newsletter. ]

Representatives for Oracle, which has eyed an appeal of the Android verdict, and Google declined to answer the question. Others in the Java space were not optimistic. "What OpenJDK [for] Android would provide would be a true Java environment for Android. For the majority of the world that understands how to develop using Java, that would be a great thing," said Scott Sellers, CEO of Java virtual machine vendor Azul Systems. "Whether or not I think it would happen, that is a different question entirely."

With Android, applications run on the Dalvik managed runtime. Android's environment is not compatible with Java even if it is similar, Sellers said, adding that Dalvik entails a learning curve. But he does not see Google being eager to move to OpenJDK. "Google doesn't have a vested interest in enabling a true Java environment for Android," he said. Sellers cites open source licensing differences as a part of the issue. OpenJDK leverages the GNU General Public License, in which any code changes or fixes must be contributed back to the community at large, a prospect not attractive to some commercial vendors, Sellers said. Dalvik abides by the Apache license, which does not have this problem, he notes.

Gosling: OpenJDK on Android could be done

The possibility of OpenJDK on Android doesn't have any technical obstacles, Java founder James Gosling says: "Technically, it's not a huge problem. Android is just Linux on ARM, and there's already a nice ARM/Linux version of OpenJDK. There are issues that would make the current binaries inappropriate (mostly graphics integration), but it's not insurmountable." Major benefits would be performance and compatibility, Gosling says.

But Gosling too sees business obstacles: "The hard issues are business. Google and [mobile rival] Apple both want walled gardens, although Google is much less blatant than Apple."

One developer already has pursued the idea of accommodating Android on OpenJDK. "Some time ago, I started with some friends a project called IcedRobot, about porting the Android API on top of the standard OpenJDK," says Mario Torre, a senior software engineer at Red Hat, who stresses he is not speaking on behalf of the company. "The idea was that it would have been interesting to give Java developers the ability to use the Android framework.

"The obvious advantage is that you could keep running and supporting legacy applications, but at the same time benefit from new and more modern APIs, which are really widespread, well understood, and easy to use," Torre says. The project stalled, however. "The problem we had is that there is a very high entrance barrier, and since, at this early stage, the outcome for a possible adoption is still unclear, we didn't manage to attract a lot of developers." There was a lot of interest in the Daneel Dalvik-to-Java bytecode converter that was part of the project, he says.

1 2 Page 1
Page 1 of 2
How to choose a low-code development platform