Even developers making an emulator for Java-based Android hate Java
-
I was digging around the Android emulator space due to this stupid new Steam rule about using the Mobile Authenticator (it turns out it's pointless, because their app easily runs in Android emulators on normal regular PCs.) But anyway. One of the big emulators is called Bluestacks.
Bluestacks is written in .Net.
So we have a company setting out specifically to write a cross-platform emulator of Android, an OS based entirely around Java. And EVEN THEY didn't want to use Java to run it.
That is awesome.
-
Bluestacks is written in .Net.
It gets better. Sure, the app (shell) is in .Net, but it's actually just being a front-end (mostly) to Oracle's VirtualBox.
It was totes fun all around getting MS's emulator working at the start, and even more getting BlueStacks to launch on top of it (Hint: Nope, won't work, two different hypervisors).
-
It gets better. Sure, the app (shell) is in .Net, but it's actually just being a front-end (mostly) to Oracle's VirtualBox.
Really?
Let's get to the fucking point: is it running a copy of Java VM on my computer? (And yes I'm aware that there's a minimal version of that in Android, but at least Android's all boxed in.)
-
is it running a copy of Java VM on my computer?
Well, the answer is, Yes*. To be uber technical, the .Net application is wrapping a VirtualBox instance hosting an x86 VM running Linux, which is in turn running a Java VM.
Boxes within boxes for boxed boxes!
-
Thank you. This just might be the most retarded thing I've heard of and I'm paid to work in Oracle's and Eclipse's stacks.
-
This just might be the most retarded thing I've heard of
I think the ideology is something like, why create your own when you can wrap something else?
They already had AndroidX86, then they had VirtualBox, but it was a pain to get working right, so Bluestacks comes along and just makes a bunch of little interfaces for Android that listen on certain network ports (forwarded to the host in VirtualBox) which get connected to on the host side from the interface logic on the .Net side.
-
Isn't there a Dalvik vm somewhere in this mess?
-
Dalvik vm
That's the Java VM we're talking about. Just another flavor.
-
Dalvik vm
Not in the latest few Android updates. Now they've got ART (Android Runtime) which is a different beast altogether.
-
an OS based entirely around Java
You're wrong. It might have been written in Java but the Java byte code gets compiled a second time to Dalvik executables. Those executables no longer run on any Java virtual machine. If you were to make a real emulator and not a frontend, using Java wouldn't mean you saved any work.
See e.g. https://www.quora.com/Why-cant-we-run-standard-Java-bytecode-on-Android
That's the Java VM we're talking about. Just another flavor.
Again, it doesn't run any Java byte code, it's a VM in its own right.
-
Guess how much I care.
-
More than you are willing to admit.
-
I totally want someone else to install Bluestacks in a VM under Xen.
-
-
WTF are you doing Discourse?
But yeah, the fact that they wrote their emulator (vm wrapper) in C# doesn't really mean anything... It was probably just their favorite language...
-
WTF are you doing Discourse?
Eating up so much memory that the webview renderer doesn't properly update from the cache?
-
I particularly like the random floating @boomzilla head
-
WooooOOOooooOOOOoooooo
-
Now all we need is a userscript to randomly cause @boomzilla's avatar to wobble around the page...
-