It’s been nearly 10 years since Oracle and Google filed a lawsuit over Android code. After three trials and two appeals, the case finally went to the U.S. Supreme Court. During this time, the two tech giants have spent countless manpower and litigation costs, as well as trying to explain the reasons to non-technical juries. But by Wednesday morning local time, the long-running battle was expected to finally come to an end.
(Photo via ExtremeTech)
It is reported that when Google first developed the Android mobile operating system, it decided to be compatible with the Java implementation. For comparison, Apple’s iOS side uses an object-oriented Objective-C code scheme.
Clearly, the search giant wants to use the power of a powerful and popular community to make Android more competitive by interopering with popular Java programming languages.
To do this, the company refactored several Java APIs, including 37 involved in legal disputes.
The question of whether Oracle, which took over Java from Sun, is eligible to bite a multi-billion dollar piece of fat from Android, and whether Google’s language compatibility involves infringement have become two of the main points of contention.
Over the past 10 years, executives at both companies have changed significantly. When Google responded in 2010, it was still involved in seven patents and one copyright claim.
By 2012, however, the point of contentious content had shrunk to 37 Java APIs consisting of only about 11,500 lines of code. By comparison, the total code for the major Android versions is between 12 and 14 billion lines.
The controversial code is said to have originated from a separate reverse engineering project, the so-called Clean Room, which became self-evident when Google’s talks with Sun Microsystems collapsed.
Even though Oracle only acquired Sun in early 2010, it filed a lawsuit against Google in August of that year.
As for the Application Programming Interface (API) mentioned here, this refers specifically to a well-defined set of interactions in software programming designed to provide quick access to various definition libraries and other functions.
For lengthy code that needs to be frequently called, the API can greatly free up programmers from the workload of building code on a specific basis without having to invent wheels repeatedly.
Technically, Google is able to spend more time programming Java to avoid the 37 Java API packages that are embroiled in controversy.
However, these basic packages, which already cover java.lang and java.util, can support functions such as mathematical operations or date/time.
The problem is that Google refactored these 37 sets of Java APIs through the Clean Room project. Oracle did not assert that the company copied the entire copy, but accused it of being so similar in structure, order and organization that it infringed the company’s copyright.
Packages, types, and methods in these APIs are named after the same name. Code written in standard Java may not necessarily run on Android, but the two are quite close.