iOS vs Android vs Windows: The Battle of the Mobile OS
Prolific leaker evleaks, whose stock in trade is smartphone-related rumors, has said that Microsoft is going to produce a Lumia phone running Android, branded "Nokia by Microsoft."
This isn't the first time that this kind of rumor has been floated, with both Windows and Windows Phone talked of as candidates for running Android apps. The logic is very simple: developers aren't writing apps for Windows's Metro environment or Windows Phone. They are writing apps for Android. Put those apps on Windows and Windows Phone and the app problem is instantly solved.
Of course, the downsides of this approach are quite clear. If Windows Phone or Windows can run Android apps, why should developers looking at Microsoft's platform bother writing Windows Phone and Windows apps? Might as well just write Android apps and have an app that works both on Microsoft's platform and beyond. This logic applies even to those developers who have taken the plunge and created Windows or Windows Phone apps; why bother maintaining them when an Android app could target the very same users plus many more?
We've arguably seen this in practice already—on BlackBerry 10. BlackBerry 10 supports (some) Android apps, and while it's hard to be certain, it seems that this facility (combined, no doubt, with BlackBerry 10's minuscule market share) has stifled the development of BlackBerry-native applications. There are signs that BlackBerry has largely given up the fight, with the news earlier this week that it has adopted Amazon's Android app store on BlackBerry. This more than doubles the number of apps available for the platform but essentially concedes that developers are unwilling to write native apps for BlackBerry 10.
The difficulties actually run deeper still, in a number of different ways. Perhaps the biggest issue is one we touched on before: the unforkability of Android.
FURTHER READING
GOOGLE’S IRON GRIP ON ANDROID: CONTROLLING OPEN SOURCE BY ANY MEANS NECESSARY
Android is open—except for all the good parts.
If you buy a Samsung Galaxy S5, for example, it will contain a range of Google-developed software. Parts of this software, such as the operating system kernel, the Java-like virtual machine used to run many Android applications, the basic user interface, are freely available open source (called the Android Open Source Project, or AOSP). Other parts, however, such as the "OK Google" search, the Gmail application, the fancy caller ID that does reverse lookups for you, and the Google Play Store, are not open source. They're closed source components that are not freely distributed or modifiable, and in principle these are only licensed for use on devices that meet Google's compliance criteria.
Moreover, these proprietary parts include various APIs. For example, while AOSP includes a basic geolocation API, the closed source components include a newer, more capable geolocation API. While one can develop apps that use the AOSP API, Google encourages developers to use the closed source API so that they can take advantage of additional features such as geofencing. Collectively, these apps and APIs are known as the Google Mobile Services.
If Microsoft made its platform compatible with Android, it's likely that it would only make it compatible with AOSP. Compatibility with AOSP is more straightforward; Microsoft could, for example, run AOSP inside a virtual machine. This may be a little inelegant, but it would at the very least ensure good compatibility.