Microsoft shelves 'suicidal' Android-on-Windows plan
Redmond: We've remembered OS/2 for you, wholesale
Analysis Microsoft has sidelined its plan to allow Windows 10 devices to run Android apps before it could do any serious damage, according to a report.
Daniel Rubino at the Windows Central blog gathered some convincing evidence that Microsoft's Project Astoria has been wound down, while the runtime allowing the Android-on-Win10 magic to work has disappeared.
Microsoft declined to elaborate on its fate, but stressed that developers had "other tools offer great options for developers".
The plan to bridge the "app gap" allowing Android binaries to run on on Windows 10 mobile devices was famously, and not unjustifiably, described* as a "suicide note" by Microsoft watcher Paul Thurrott when its existence was widely discussed back in April.
The fear was that the existence of an Android runtime on Windows 10 phones and tablets would remove the incentive for developers to create native Windows applications. Windows would become a device driver layer and as a consequence, Microsoft's best chance to lure users into its
data-slurping cloud consumer services such as Cortana would disappear.
In fact, Project Astoria was every bit as ambitious – or suicidal – as feared. When it was announced, Microsoft explained that developers would need to convert an Android binary to a Windows appx – a Store-compatible app package. By July, Microsoft was describing Astoria as a technology that "enables Android developers to publish their unchanged binary to run as they are on the Windows mobile platform" in job postings. Windows 10 mobile devices would include a runtime and patch requests to Google services such as advertising, maps and cloud storage. The legality of this seems to have occurred only as an afterthought to Microsoft executives.
That permitted Android apps to rain from the skies, onto Windows phones. And pretty soon heavy showers were being reported. By August, one developer had dropped in the Google Play store on Windows 10, allowing him to bypass Windows Store completely. There were problems with compatibility – but then wasn't seamless compatibility, with only minimal headaches for developers, the whole point of the Astoria runtime? "Uh, SatNad, are you sure this is what you want?", we asked.
Perhaps it isn't.
In September, the Astoria forums went silent. Microsoft no longer briefs developers about it and the runtime has been removed from the latest builds of Windows 10 Mobile. Rubino suggests that it was labour intensive, with as many as 80 developers involved, which can't have helped.
But it's only part of the picture. If you've followed the travails of the BlackBerry 10 (BB10) operating system, it's a vivid demonstration of Thurrott's "suicide prediction". The essential dilemma is this: the better you make your runtime, the less incentive there is to create native applications.
BlackBerry developed an Android runtime for its first tablet, the PlayBook, in 2011. Just as Microsoft promised in early May, RIM (as it then was) would ensure a compatibility hurdle that repackaged an Android app into a QNX app, just to make sure everything worked nicely. It also allowed Android binaries to tap into the platforms notification system. The user didn't care that their Skype binary wasn't truly native, so long as the phone rang. And so the runtime duly made its way into BlackBerry 10 (BB10) phones when the platform launched in January 2013.
Major problems remained however. Apps that required Linux ARM extensions wouldn't work. BlackBerry fixed this with a remarkable technical breakthrough allowing it to execute ARM code using dynamic cross linking, shimming, and catching and redirecting syscalls. As a result, Android apps could be installed in place. By late last year, BlackBerry was confident enough in its Android compatibility to bundle Amazon's Android app store (itself an Android binary, of course) in the platform release. With echoes of IBM's boast that it could provide "a better Windows than Windows", BlackBerry was offering Android app compatibility but (perhaps) without the security headaches.
However an increasing proportion of Android apps were calling upon Google's GMS libraries, and this caused further issues. A Google authentication layer needed to be added, and each Google-dependent APK binary needed to be patched. It could be done, but it was laborious, as you can see here.
Bridges to Windows 10
Project Islandwood allows iOS code to be imported into Microsoft Visual Studio, tweaked, and recompiled. Project Centennial allows legacy Win32 desktop apps to become Store apps, with
sandboxed restricted access to the Windows Registry. While the fourth is the least talked about, and perhaps the most underrated: Project Westminster is intended to import websites and turn them into hosted web apps.
Getting these three projects right gives Microsoft a much more coherent native-ish app strategy without making itself irrelevant, as Astoria surely would have done. In 1995, pointy-headed manchild Marc Andreessen of hot new startup Netscape taunted Microsoft by threatening to make Windows a "poorly debugged set of device drivers", a quote he attributes to Bob Metcalfe. Twenty years later we have a small Chromebook market, and an even smaller app streaming market, but native code is alive and well.
It would have been ironic if Microsoft itself had made Metcalfe/Andreessen's vainglorious boast come true. ®
By October the "suicide note" had become Windows mobile's "only saviour", so where that leaves the bipolar Windows fanboy is anyone's guess.