Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

[deleted]


The Java API is in the public domain, Oracle even admitted as such:

> they added to their sins by now assessing damages in copyrights based on APIs in the Java language, of all desperate moves, which Oracle has already admitted to the court is in the public domain.

You can say that Dalvik stepped on some patents to maintain the API's compatibility, but anyone can implement the Java language for free if they want. It's only if you use the Java VM that you have to pay license fees, which Google obviously doesn't do.


Google as far as I based android on the Apache VM which was implemented using the published OpCode spec for Java. So for ripping off the OpCode/VM, actually they did something quite legitimate. From memory the Oracle claim centers on a few specific classes that they claim Google reverse engineered from the original Java source.

As for the incompatibility it was Oracle that chose to deny Apache a license for the Harmony VM, this was because they knew it was a threat to J2ME.


Google doesn't even do that.

They are not using Apache VM. They are using their own Dalvik VM, which is not even compatible with Java VM. It uses their own opcodes.

What they use though, is Apache Harmony - the library, that is reimplementation of java.* packages.

Any Android app is compiled using using javac (or other compiler, producing class files) and then converted using Google's dex tool to be runnable by Dalvik. Android OS in unable to run untouched .class/.jar apps.


*Android OS in unable to run untouched .class/.jar apps.

Im not sure if that is correct. I have implemented a VoIP application using JAIN SIP jar files compiled with Standard JDK 1.6 that ran fine on Dalvik. This was of-course pre Android 1.0 days. Im not sure if that is the case today.


I'm sure that's correct.

Sure, you can take jar file compiled using JDK's javac (actually, most android apps are compiled using JDK's javac), but you can't run it on device. You have to run it through dx tool, which combines all class and jar files and converts them into dex file. With different instructions than JVM.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: