Oracle has been suing Google over the use of Java in Android for a while, but Google has taken steps to prevent future versions of Android being affected by further lawsuits.
History of the dispute
The Oracle America, Inc. v. Google, Inc. court dispute has been going since August of 2010. In this case, Oracle claims that Google is infringing on their copyrights and patents associated with Java by including some Java libraries in Android.
Back when Google first introduced Android in 2007, they announced that they would be using Java for part of the system. This was the time when Java was property of Sun Microsystem. At the time, Sun was open to Google using Java. There was an attempt to reach a licensing deal, but nothing came of it. After Oracle purchase Sun and acquired Java, there was another round of livening talking, which did not result in an agreement. Oracle then filled a lawsuit against Google.
After Oracle purchased Sun and thus acquired Java, there was another round of livening talking, which did not result in an agreement either. Oracle then filled a lawsuit against Google.
Google uses Open Source to counter Oracle
To prevent Oracle from filing further lawsuit, Google has announced that they will be replacing the current Java libraries with OpenJDK, which is available for free under the GPL. OpenJDK is basically an open source version of Java also provided by Oracle.
You read that right. Google is preventing further Java licensing disputes by switching to an open source version of Java provided by the company currently suing them.
Besides preventing Oracle from taking future legal action, the implementation of OpenJDK also allows Google to use the latest features of Java. Since 2007, Android uses an implementation of Java named Apache Harmony. Apache stopped supporting Harmony in 2011, but Google kept the project alive.
Now that is OpenJDK is more mature, Google can drop that old code and take advantage of newer and up-to-date features.
What do you think of Google’s move? Should they have done it sooner?