Computing desk | ||
---|---|---|
< April 12 | << Mar | April | May >> | April 14 > |
Welcome to the Wikipedia Computing Reference Desk Archives |
---|
The page you are currently viewing is an archive page. While you can leave answers for any questions shown below, please ask new questions on one of the current reference desk pages. |
Is there any software tool etc. available on Net using which one can convert a Windows .exe (standalone) program into an app that can be run on an Android phone or tab ?210.56.125.60 (talk) 14:32, 13 April 2016 (UTC)
Anyway probably most software would theoretically be fastest if you had no real OS or any other extraneous code and your code was perfect. But in practice this isn't what most software is like. So how do you define an extra layer. Historically Windows software has run on two different kernels, the NT one and the 9x (DOS derived) one. (AFAIK, Windows CE never supported Windows apps unless they were specifically designed to be cross platform.) While rare, some people are still using software which was designed for 9x. Is running Windows software on either of these OSes running with an extra layer? Is running software on ReactOS running with an extra layer compared to either of these two examples? How about running on some variant of Linux with WINE? What about running on some Linux derived OS which uses the Linux kernel but with anything unneeded for Wine removed? How about if you modify the kernel, WINE and any API features to optimise performance? How about if I do all that for one specific piece of software? What APIs are we referring to anyway? For legacy reasons, Windows has a heck of a lot of them. To put it a different way, if your claim is uncontentious, why do a number of *nix supporters like to claim that Windows software runs faster and better on Linux when there are no compatibility problems because the Linux kernel and perhaps the WINE implementation of the various API is better? (Something which I don't think is correct, but illustrates the point that there are a whole bunch of people who disagree.)
Also is comparing it to running natively on Windows even correct? In a dual boot scenario perhaps, but if your only OS is Android, your options are either running Windows on a virtual machine, running the Windows exe through some API compatibility later, or running native Android code. We know stock Android software uses the Java based framework although with the support for native code and such advances. Traditionally the Dalvik (software) was used but this was replaced with the Android Runtime which uses AOT; and this change was made at least partially for performance reasons. If someone ports your software to Android which as discussed is the third way you can use it on Android, how good is the port going to be? Even if it's a good port, how will performance actually compare particularly if you're still using Dalvik (most Android versions before 5, which due to the nature of Android some devices are still using although probably not many x86 ones). I have no idea what the plans to implement WINE on Android actually are, but it seems possible some of them will require some degree of changes and rooted devices and largely bypass the traditional Android framework. So again, how do you define slow? Is the performance using your WINE (or whatever) on these devices even going to be worse let alone significantly worse than the performance on Dalvik even with a good port?
I do agree this is offtopic, but you're the run who kept insisting it would be slow or slowly but haven't really provided anything to back this up.
I also question the claim it's not possible at the moment. A simple search found [2] [3]. I doubt the performance of this is very good, and the list of supported software appears to be one plus one in progress and that's after 4 years (actually I'm not sure if there's been any real work since 2013) [4], but it sounds like this is really allowing the EXE to work on Android by patching the API calls and instruction set. (Rather than reimplementing the engine ala ScummVM, Exult, Ur-Quan Masters, OpenXcom etc which I agree is different.) In fact traditional it worked in a manner very similar to the OP's question although they've now moved on to dynamic recompilation. [5]. I think there's also the open question of where you draw the line. For example, since you can run QEMU or other emulators on Android [6] [7], you could theoretically make something which would take the EXE and add QEMU and some Windows compatible OS (perhaps Windows itself although I doubt this will comply with any EULA) and produce something for Android. There appears to be some discussion of a more complicated variant of that here [8]. Even the simplistic example is far from trivial so by that token doesn't exist yet, but simply running Windows 98 on Android sounds to be a bit easier although is likely to be very slow. [9]
P.S. I've mostly assumed 9x or later here. Of course Windows 3.1 is still Windows and still had exes and would probably work on DosBOX or Bochs. (See earlier for example.) I quite doubt this is what the OP is referring to, actually I doubt they're even referring to applications for 9x, however it also IMO illustrates the problem with an unqualified no.