AH 2015 Android LOGO-105

AH Primetime: What Oracle’s OpenJDK Means for Android

January 11, 2016 - Written By David Steele

The Android operating system dates back to 2003, although it gained momentum when Google bought the software in 2005. Android is often described as an open source operating system, meaning that anybody is free to take the Android code and modify it as he or she sees fit. At the time, making an operating system such as Android free and open source was unheard of but there were several reasons why Google took this decision. These include how Google was to steer the Android platform, control the application store, work with developers to encourage application development and critically, not to develop in the open, but instead release the Android source code once the software engineers had innovated the software. So powerful was the vision behind Android that Steve Jobs called Google’s founders to his office for a meeting where he asked them not to release the software. Google refused, Apple went “thermonuclear” in its efforts to destroy Android, and now has a distant second place in the global mobile operating system market share.

As part and parcel of making Android open source, this means that anybody can take Android and modify it for their own purpose, thus creating a forked version of the software. Amazon’s Fire OS is an example of a forked version of Android, but there are many, many different flavors of Android. These non-Google variants of Android are in some respects considered a threat towards “proper” Google Android, but it must be remembered that Android was built to be spread all over the world in many different guises and flavours. This leads to a fragmented market, but it also gives customers and developers massive choice. Nevertheless, if we were to break down Android into “Google Android” and “Non-Google Android,” we relegate Apple’s iOS to third place in the global mobile operating system market share table. More on forked versions of Android a little later.

Android has encountered its fair share of controversy over the last decade. One of the most prominent stories is how Google is being sued by Oracle because of the embedded Java technologies in Android. By way of background, Java dates back to 1991, although the first release of the software arrived a few years later in 1996. The language and software was originally developed by Sun Microsystems, later purchased by Oracle Corporation. Java is a cross-platform environment, that is, it’s available across a huge number of different hardware specifications. It’s been used in a massive number of devices from mobile ‘phones, smartphones, in-car infotainment systems, household electronics and all of the way to enterprise servers and supercomputers. Now, when Google bought Android back in 2005, it incorporated a number of Java technologies into the code. Indeed, when Android was beta launched in 2007, Sun Microsystem’s Chief Executive Officer, Jonathan Schwartz, famously thanked Google and said they had “strapped another set of rockets to the community’s momentum – and to the vision defining opportunity across our (and other) planets.”

Oracle

Oracle bought Sun Microsystems and gained control of Java in 2010. Shortly afterwards, because Google had not licenced any of the Java code used in Android with Sun (and now Oracle), the new Java owners sued Google for patent and copyright infringement. The case concerns Google’s use of Oracle’s Java technology, including how Java was implemented and how APIs, Application Programmable Interfaces, are used. APIs are the means to access various libraries in code. Oracle’s case is that these APIs are copyrightable, or rather to be specific, Google used and copied the Oracle Java code without permission. Although the case is still rumbling on, we have already seen Google modifying Android in order to distance itself from Oracle’s technology – the move from Dalvik to the Android RunTime did bring about with it some important benefits to Android devices including a more responsive operating system with the potential for performance and battery life improvements, but it also reduced the reliance on Oracle’s technology. Last week, Google announced it was switching to the OpenJDK API, thus removing Oracle’s APIs from Android. Going forwards, this means that should Google lose the case against Oracle and could be enforced to change how Android works, this has already been done. We’ve learnt that this change has been in the works for some time now.

 

In effect, Google is reminding Oracle that it still has control over Android’s direction. Oracle’s legal case is based on the understanding that an API is copyrightable. If this is the case, Google’s new API (the OpenJDK) is protected by the GPL (the GNU General Public License). This General Public License allows companies, organizations and individuals the freedom to modify, run, study and share the software. In the case of the OpenJDK API, Google must publish any changes their engineers make to the API. However, this is exactly the point of an Application Programmable Interface: developers need to be aware of any changes made to the API so that their applications will continue to work properly.

This could be the end of our story today, but for the small fact that Oracle already has a comprehensive licensing agreement already in place with Microsoft, which was signed in 2013. It is not the greatest stretch of the imagination that should Microsoft be interested in releasing or working on their own forked version of Android, they might license Oracle’s Java technology for use in their version of Android. We already know that Microsoft and Cyanogen (the company who have stated they are working to wrestle control of Android away from Google) are in a partnership. It is possible that Microsoft may decide to fork Android, or use Cyanogen’s fork, to produce a Microsoft version under their control that allows customers to use Microsoft’s services (such as Exchange, OneDrive, Office 365 and Azure) and have greater control over the platform without following in Google’s footsteps. Microsoft could use their forked version of Android to replace Windows 10 Mobile, which itself has replaced a string of mobile operating systems including Windows Phone 8 and the Windows Mobile / PocketPC / Windows CE family).

AH Microsoft Logo 1.1

Such an operating system could access core Microsoft services without legacy Google service support, but could relatively easily run other Android applications. We’ve already seen how Microsoft has shelved its plans to run Android applications over Windows 10 for a number of reasons, many of them being licensing. This must be a tantalising prospect and using Oracle’s Java technologies would be a means to differentiate between Microsoft Android and Google Android.

This competition should be good for both Google and Microsoft, perhaps less so for Apple. We’ve already seen how successful forked versions of Android are. Microsoft may have a string of disappointing mobile operating systems behind it, but as smartphone and tablet hardware has become more powerful, so Redmond may have some tricks it could show Google. In particular, how Microsoft uses Windows Update to roll out security patches to connected and supported Windows machines. Whilst Google promises to release monthly security updates for the Android code, most manufacturers are giving the impression that they are simply ignoring these. If Google starts to lose market share to Microsoft’s forked version of Android and security is seen as a reason, we can be sure that Mountain View will work on improving this aspect of Google.

It would be a bizarre twist if both BlackBerry and Microsoft started using Android to power their next generation of mobile devices. Yes, especially in the case of a Microsoft product, the Android operating would be different from Google’s flavor of Android, but the old saying is “if you can’t beat them, join them.” Whatever could be next, Apple releasing hardware running Android software?