You can’t develop the world’s top mobile operating system without getting into
a few legal tussles. Google has been embroiled in a complex lawsuit with Oracle
over the Java programming language since 2010. The case centers on whether or not Google
infringed on Oracle’s copyright when it copied sections of the Java APIs in Android.
Now, Google has confirmed that it will be doing away with all the standard Java APIs
in the next version of Android. Instead, it will use only the open source OpenJDK.
The ongoing battle between Oracle and Google has been messy, to say the least.
It all goes back to the way Java APIs (Application Programming Interfaces)
are used in Android. If you want programs to communicate with each other, you need an API,
and Oracle thinks it should be able to copyright those. Computer scientists tend to
disagree because APIs are essential for interoperability.
Android apps are mostly written in Java, then compiled by the operating system to
native code and run. The part of the system that handles this used to be known as Dalvik
virtual machine, but has since been replaced by the more efficient ART (Android Runtime).
Most of the code in Google’s VM is original (Google says it’s about 97%),
but it still uses Oracle’s Java APIs.
This has been a sticking point for the last few years. After a jury found in favor of Google,
a appeals court mostly reversed that judgement. A petition for the Supreme Court to hear
the case was rejected earlier this year, and the case now sits at a lower court waiting
to decide on Google’s fair use argument. In the meantime, Google is making sure this isn’t
an issue going forward.
Because Android is open source (Java is mostly open as well), you can see all the code commits to the Android Open Source Project (AOSP). Some developers noticed a large change pop up the other day that affects 8,902 files. Further digging revealed that it was related to the Java APIs in Android. When asked about this, Google confirmed that it is moving away from the standard Java implementation and will instead use OpenJDK.
Google didn’t mention the case against Oracle, but it seems clear that’s the reason
for the change. Google claims using the OpenJDK will create a common code base for
developers. It also has the benefit of being completely open source and not controlled
by the overly litigious Oracle. Even if Google wins the fair use argument,
that doesn’t mean future fair use arguments would hold up. It’s best to just move away
from Oracle’s platform.
Google says the switch to OpenJDK will take place in the N release of Android.
That’s expected to happen at some point in 2016. That doesn’t change anything about
the current legal battle. If the court finds that Java APIs aren’t covered by fair use,
Google might end up paying out a large pile of cash to Oracle.