Microsoft may have sidelined its effort to allow Android apps to run unmodified on Windows 10. But Windows users have been able to do this on PCs for over a year at very low cost - thanks to a cunning virtualization project.
DuOS, or AmiDuOS, is an emulator that provides excellent compatibility for Android apps on the desktop. And perhaps unsurprisingly it survived an interesting history of tussles with Google before staking its claim.
[...] If this is the shape of things to come, it poses some intriguing strategic questions for Microsoft. Microsoft risks losing the developer client base that it has been able to take for granted for two decades. Windows has a huge app gap, and is marginal in mobile and tablets. Ideally, Microsoft wants developers to write to a Universal API that is compatible across Windows PCs and ARM-based mobile devices such as tablets and phones. But the apps have already been written, in Java, for Android.
Credit: Posted by RS Wood on comp.misc
Related: Steve Balmer: Use Android to Save Windows Phone
Related Stories
Microsoft CEO Satya Nadella was busy explaining to a stock holders meeting that the company's plan to improve the Windows Phone's sales was to appeal to Windows developers by allowing them to write universal applications that work on computers, phones and tablets, targeting a larger array of devices than just Microsoft's handsets.
Steve Ballmer, still a major stock holder, blurts out
"That won't work, Instead, the company needs to enable Windows Phones to run Android apps."
He was possibly right, but the outburst was about as welcome as a cactus in an outhouse.
The Application market for Windows phone is a mess. If it is free, Facebook, Skype, Twitter, it gets downloaded. If the developer charge much of anything at all, apps just don't sell. And developers just aren't spending any time developing for Windows Mobile.
It's not clear exactly what Ballmer meant by his comments, however. Was he implying that Windows Phones need to run apps that were originally designed for Android, and then ported over to Windows? In that case, he's probably aware that Project Astoria, the Windows "bridge" tool that will allow developers to port Android apps to Windows, has been reportedly put on hold.
(Score: 3, Touché) by VLM on Tuesday December 08 2015, @06:09PM
But the apps have already been written, in Java, for Android.
Yeah and before that, the apps were already written in Perl or whatever for the web. But still, like a cockroach in a high radiation field, MS just won't die.
(Score: 0) by Anonymous Coward on Tuesday December 08 2015, @06:32PM
Same shit from all platforms, language/vendor lock-in.
(Score: 1, Informative) by Anonymous Coward on Tuesday December 08 2015, @09:12PM
When you experience what Windows 10 and Office 2013 actually do you will wish that MS had died, or that you had switched to Linix or Apple.
Start with having the file names, sizes, and other information sent to Microsoft.
Then experience a start menu with ads.
Forced updates.
Sudden unexplained system death. See "forced updates".
Your own OS spying on you then sending the data to Microsoft. See "telemetry"
Unauthorised bandwidth use, in the range of 3GB - 6GB
etc
(Score: 2) by rts008 on Tuesday December 08 2015, @06:42PM
This piece makes it seem that this is the first 'unholy matrimony' involving MS.
It's not a new game, just this 'partner' is new to the game.
(Score: 2) by davester666 on Tuesday December 08 2015, @09:01PM
Microsoft accepts all comers.
(Score: 1, Interesting) by Anonymous Coward on Tuesday December 08 2015, @06:49PM
Are there any (free) projects to run android in a docker container on linux? It would be so convenient to be able to run individual apps, each in their own isolated 'vm' at full desktop speed. I don't care about games really, but everything else ought to be fair game. I've looked into it in the past and it seemed like all there was were really slow, super clunky tools for devs, not for general users. Has anything better come along in the last year?
(Score: 0) by Anonymous Coward on Tuesday December 08 2015, @06:53PM
there is Androidx86...
http://distrowatch.com/table.php?distribution=androidx86 [distrowatch.com]
(Score: 1) by Chromium_One on Tuesday December 08 2015, @08:42PM
Best estimate I have for Android x86 [4.4-r3] is hovering around a 60% app compatibility rate when running on a VM. Anything requiring hardware video rendering [which is mostly but not entirely games] just falls down. Install direct to real hardware kinda sidesteps the whole point, but then raises the compat rate to around 90% or so.
Don't even bother with the 5.x pre-release that's available.
Maybe in the not-so-distant future this might be a reasonable answer, but for now it ain't.
When you live in a sick society, everything you do is wrong.
(Score: 2) by meisterister on Tuesday December 08 2015, @06:53PM
... when someone tries this in a copy of Windows 10 installed on a mac...
(May or may not have been) Posted from my K6-2, Athlon XP, or Pentium I/II/III.
(Score: 2) by fido_dogstoyevsky on Wednesday December 09 2015, @03:47AM
... when someone tries this in a copy of Windows 10 installed on a mac...
I once ran an Aplle ][ emulator in a DOS emulator under Windows (XP, I think) in a VM on a Mac...
It's NOT a conspiracy... it's a plot.
(Score: 2) by fido_dogstoyevsky on Wednesday December 09 2015, @03:49AM
... when someone tries this in a copy of Windows 10 installed on a mac...
I once ran an Apple ][ emulator in a DOS emulator under Windows (XP, I think) in a VM on a Mac...
Fixed that for me (next time PREVIEW FIRST and then submit).
It's NOT a conspiracy... it's a plot.
(Score: 3, Interesting) by Gravis on Tuesday December 08 2015, @06:57PM
First off, this was news... about two years ago. [umpcportal.com] Secondly, this is NOT a compatibility layer because it runs full the Android for x86 OS. This is more like VMWare with specific tweaks for Android than anything else.
In other words, Microsoft was trying to do something like WINE (and failing badly) while this is more like running Windows in a virtual machine.
(Score: 0) by Anonymous Coward on Wednesday December 09 2015, @12:35AM
something like WINE
BlueStacks, Alien Dalvik, IcedRobot [google.com]
-- gewg_
(Score: 5, Insightful) by LoRdTAW on Tuesday December 08 2015, @07:44PM
Problem is a lot of cross platform frameworks and apps needing high performance (some 3D games) use native code to sidestep the whole Java thing. The idea being is the bulk of the logic code is done is native using C++ and the UI uses Java. This is why I think Androids idea of using a JVM to promote platform independance, e.g. app can run on Android x86, ARM, PPC, MIPS, etc., was a total failure. And let's be honest, in 2008 when Android was first released the write once run anywhere idea behind Java was pretty much a failure.
If they wanted true cross platform they should have gone the Inferno route and made it wholly impossible to use native code without compiling and statically linking it into the kernel binary. User Space in its entirety should have been virtual, even libraries. Even then, you could use other languages if they could run in your VM. I think Sun got Java working in Inferno on top of Dis alongside the native Limbo language. Im sure other languages such as C#, Python, etc. could also be ran. Though, I think that is more rube goldberg than necessary.
Android should have been more of a true Linux OS (meaning Unix-like) with a custom GUI, simple package management, and stuck with C/C++, GNU libc and offer the developer their choice of language as long as someone made the bindings. So have fun with C/C++, Java, Python, C# etc. That would have made it more parallel with Linux and development from each OS could spill over into the other benefiting both projects. But no, we get stuck with a crappy tablet OS with an outdated JVM concept.
(Score: 2) by Nerdfest on Tuesday December 08 2015, @08:34PM
For me, the Java "write once, run anywhere" has worked pretty well, with the same code working on Linux, Android, and IBM lameframe, so it's far from a complete failure. Another than that, yeah, a real Linux mobile OS would be nice. Of course, there's not really that much stopping it from actually being done. With some of the changes to Android lately, it might be a good time as well.
(Score: 2) by LoRdTAW on Tuesday December 08 2015, @09:03PM
Do you mean code or the application itself? If you mean code then yea, code is portable. Same could be said about C++ and Python. But an entire application is a whole other thing. Android can't run jar files without an emulator.
(Score: 0) by Anonymous Coward on Tuesday December 08 2015, @09:05PM
I have never, not even once, seen a useful java program compiled and run on more than one machine. I have seen a lot of java programs written for midrange and mainframe.
(Score: 3, Insightful) by Nerdfest on Tuesday December 08 2015, @10:25PM
Those jar files that run on a mainframe are almost definitely developed, compiled, and tested on Windows or Linux hardware.
(Score: 3, Interesting) by RamiK on Tuesday December 08 2015, @09:48PM
Android should have been more of a true Linux OS...But no, we get stuck with a crappy tablet OS with an outdated JVM concept.
I was up there with you on the Inferno points right up until you started championing a broken 1970s UNIX kernel design over the broken 1990s Jvm.
Google did nothing wrong with Android. They set out to write a commercial OS for throwaway cellular phones and they did just that. They never tried to design a good general purpose OS that solves any particular problems other then the market demands for a familiar, free OS that OEMs can use without getting in bed with MS or Apple and newbee programmers can write silly games and GUIs to without any investments in skill-sets others then the ones they already picked up in collage.
As for what Google could be doing... Well, they can't make EE engineers start using anything but C to write kernel drivers. They can't make coders use anything but Javascript to write GUIs for*. So, the best they can do now is fill-in the gaps by making sure Golang is gluing the two together in a cross-platform, back/front end model. Once there, they could transition a whole user-land across different kernels and systems without upsetting anyone except Microsoft's share holders... But that's a concern for another day ;)
* Fun trivia: the GUIs in Fallout 4 are written in Actionscript. And they're written in that familiar Javascript quality assurance. Whereby, key-bindings are hard-coded and you can crush the engine by doing certain actions out-of-order or just hitting the buttons too fast. There's even exploits for buying and selling items in a specific order that provide the players with unlimited game currency...
compiling...
(Score: 3, Informative) by LoRdTAW on Wednesday December 09 2015, @12:04AM
I'm sure it was an honest mistake on your part but if you see that I'm advocating Inferno, I damn well know Unix is broken. You are forgiven ;-)
Wait... By saying broken 1970's Unix kernel design, do you mean the POSIX standard/Unix architecture or something else pertaining to the Linux kernel design itself? And the JVM is not a kernel so you can't really compare the two other than they both kinda suck. I'm not calling you ignorant. I'm just missing your point.
The reason I wished for a GNU/Linux OS was to allow the GNU/Linux & Android projects to be developed in parallel. I suppose my original point was why can't we have our cake and eat it too? Meaning, why can't we have a simple to use phone OS with the underpinnings of a commonly used, hackable OS? Then we can develop applications on a much more common ground with the only difference being CPU arch and GUI. The rest could be standard OSS libs and tools. Running Android apps On linux would be much easier and the two could form a new Desktop/mobile ecosystem(buzzword alert!). I know, I know. Wishful thinking. right? Is it too much to ask for a proper sshfs client or shell for that matter? Unix might suck but we are bloody stuck with it.
My only wish is Google opens an operating system research laboratory, puts Rob Pike in charge of it and they reexamine the ideas behind Plan 9 and Inferno and make something that will save us from the Apple, MS and Red Hat OS kludges.
(Score: 2) by RamiK on Wednesday December 09 2015, @03:23AM
Wait... By saying broken 1970's Unix kernel design, do you mean the POSIX standard/Unix architecture or something else pertaining to the Linux kernel design itself?
I'm referring to the laundry list of what Plan 9 is that Linux isn't. It's an outdated, broken design and I'm personally not comfortable advocating it over an equally broken design such as the Jvm.
And the JVM is not a kernel so you can't really compare the two
As far as I'm concerned, any layer of abstraction aiming at isolating the next layer \ it's users from the previous layer \ hardware is comparable. The Jvm is comparable to the linux kernel since they both manage memory and aim to abstract hardware using their own metaphor. Some programming language could even fit this classification provided their memory management model was designed isolated from the OS rather than a part of it. So, C won't fit since it's runtime largely depends on what the OS and architecture is doing but Go and Java do.
The reason I wished for a GNU/Linux OS was to allow the GNU/Linux & Android projects to be developed in parallel.
So, like, Windows 8? Look, we have Qt, Gnome and EFL on linux just to name a few... A dozen more specialty libraries times a dozen more cases. "developed in parallel" would just have meant more libraries not the same libraries.
My only wish is Google opens an operating system research laboratory, puts Rob Pike in charge of it and they reexamine the ideas behind Plan 9 and Inferno and make something that will save us from the Apple, MS and Red Hat OS kludges.
Plan 9 was pretty much the end all to be all OS. It's only flaw was the overbearing weight of 9P. It's one thing to decide internally on keeping all your kernel and network interfaces exposed to the user-land in a uniform, network-transparent protocol. But, it's a whole other thing to start weaving it into the user-land to the point your text editor has it's windows and menus mountable in the file system and it was the only way to customize it.
Sometimes, I dare say, It was nearly as bad as Java: My joke of the day was that I'll need to write a ./ctl/in, a ./out and a ./err in an "hello world" for it to be a proper Plan 9 software :D
Regardless, Go fits the bills here. It's it's own little OS. Complete with it's own concurrency and memory management. I don't care if my runtime targets hardware or software defined logics nowadays anyhow considering Intel has Micro-controllers embedded in the motherboard and secret magic sauce firmwares ROMs burned right in the CPU.
Why, even our x86 assembly is broken apart into machine code and not in a 1:1 fashion since there are thousands of possible machine instruction. And later, it's further broken apart into even lower level RISC like microcode... So, Go's on-top of the OS's drivers but still native code seems quite minimal and reasonable when compared to all of that and the Jvm.
compiling...
(Score: 2) by LoRdTAW on Wednesday December 09 2015, @05:44PM
I like your thinking. Believe me, I know we have a software bloat problem. A really big one. My suggesting Linux was merely one of practicality, something that would be taken seriously by the current industry.
As for plan9, someone needs to make it happen. The only second system that did the inverse of second system effect, it was actually much, much simpler and fixed the broken unix model.
Ever read up on the styx on a brick project? Really neat stuff right there. 9p really can do it all. Wish my phone exposed its file system via 9p so I can view my pictures via phone/camera/pictures/ instead of the idiotic MTP protocol, another fuking brain dead protocol that masquerades as a storage device but isnt. FFS, How many file protocols do we need? Then my phone connects via USB to my car radio but I can't control the music player unless it's the app that comes with the dumb radio. Why? yet another fucking protocol. Just expose the audio and player controls as files via 9p and your done. At that point everything can be controlled by shell scripts if need be. What is the current song playing: cat phone/musicplayer/playing. Skip to next track: echo next_track > phone/musicplayer/control. Need the audio stream: mediaplayer phone/audio/audio_stream. Want to adjust the 3 band EQ: echo "3, -1, 4" > phone/musicplayer/eq. Want to save the eq setting: cat phone/musicplayer/eq > fav_eq.txt. Bought an IP security camera and want to see the video: vlc ipcamera1/video. And the list of what it can solve goes on and on and on. Might not cover every case. But can certainly cover a vast majority of little day to day things that drive me up the wall needing a plethora of mutually incompatible libraries that need linking and software to use them. The computing world would be a much better place. Sorry for the rant but I'm tired of the shitty software world.
(Score: 2, Informative) by Gibby on Tuesday December 08 2015, @08:20PM
http://www.bluestacks.com/ [bluestacks.com] I tried years ago when they first came out but it is not available for Linux, but it is the one I hear the most about now.
https://www.genymotion.com/ [genymotion.com] there are about a dozen extra steps to get it to work with google services, basically getting the play store working, but I did like that it leveraged VirtualBox and I was able to run it on my Ubuntu desktop.
(Score: 1) by tnt118 on Tuesday December 08 2015, @08:43PM
My latest favorite -- and best performing of those I've tried -- is Droid4X.
I think I like it here.
(Score: 0) by Anonymous Coward on Tuesday December 08 2015, @09:14PM
Will it run on an Amiga 1000 [pcmuseum.ca] with an A1060 Sidecar [resource.cx]?