Wine could bring Windows apps to Google's Linux-based Android platform, but there are a few hurdles the project needs to jump first.
Future Android gadgets could run Windows software, thanks to work being done to port the Wine compatibility shim to Google's popular mobile platform.
Wine - a recursive acronym from Wine Is Not an Emulator - was originally developed to allow selected Windows applications to be installed and run under Linux without support from the original developer. Since its inception, it has grown into a popular tool for running everything from Adobe Photoshop to new-release games - and while not everything runs without issue, its compatibility database
is pretty impressive. For those who prefer commercial, rather than community, support, a paid-for Wine fork dubbed CrossOver
is available for Linux and OS X.
Now, Wine is reportedly heading in a new direction with plans to release a version of the software that runs under Google's Linux-based Android mobile platform - potentially allowing smartphones and tablets to install Windows software and run it alongside native Android applications.
It wouldn't be the first time such a thing has been attempted: a port of DosBox
emulates a 486-era PC and allows Android smartphones to run older MS-DOS applications, while a version of the QEMU machine emulator
provides the option to emulate a somewhat more powerful system in order to install Linux or, with a fair bit of hacking, an older Windows version.
Both options suffer from serious performance problems, however - mostly because they run an entire operating system on top of Android. Wine, by contrast, is a compatibility layer that translates Windows API calls into their Linux equivalents - meaning applications can be executed without the need to have Windows running in the background. It's a system that has served Linux well, but the translation to Android is unlikely to be smooth.
For a start, there's the issue of instruction set architecture. Windows apps are developed and compiled for the x86 instruction set or its 64-bit equivalent, while the overwhelming majority of Android devices are based on ARM architecture processors - discounting a small number of devices running Intel's x86 Atom chips. The two aren't directly compatible, which is why DosBox and QEMU show often poor performance: they are having to emulate a full x86 processor on an ARM chip optimised for low power draw in a mobile device. The result is something quite some distance away from native performance.
Wine solves the issue of running a full version of Windows in the background just to access a single app, but it can do nothing for the issue of different instruction set architectures. Full details of how Wine for Android would operate are not yet available - the closest thing is a report from Phoronix
that showed the software running on an x86 MacBook Pro in the Android SDK - but it would have a few options: emulate an x86 chip, like QEMU and DosBox, with all the performance penalties that implies; run only on x86 Android hardware, which is a tiny fraction of the market; or require developers to recompile their Windows applications for ARM before they would be compatible with the Wine shim.
Thus far, it's not clear what direction the project will take - but it's certainly likely to be a considerable time yet before you're firing the desktop version of Internet Explorer up on your Android smartphone.