At BriForum, Jack Madden and I gave a presentation about Virtual Mobile Infrastructure. Though we’ve written about it a lot, it’s a fairly new concept, and attendees were there just to learn where the infant technology is today. I sort of took on the role of the salty old veteran, representing the desktop virtualization contingency in the audience, while Jack took on the evangelist role.
I’ll be honest–my first impression of VMI was “Just because you CAN, doesn’t mean you SHOULD,” but after having many conversations with vendors, I can see a place for it. We wanted to cover not only the use cases for VMI, but also the different vendors in the space today, like:
- Remotium (now Avast)
- Trend Micro
At the end of the session, I gave a demonstration of a way you could roll your own VMI (well, at least to some degree) using techniques we’re already familiar with, and I wanted to go through what I did here.
The key to it all is a company called BlueStacks, which was founded by Rosen Sharma, who you’re probably familiar with because he is former CTO of McAfee. BlueStacks makes a product called App Player that virtualizes Android on Windows or Mac computers. It is primarily aimed at gaming, and appears to have full support for Google Play. They boast being able to support 96% of all apps and 86% of all games, which is probably better than most devices!
Installing BlueStacks on Windows is simple enough, and getting running after the initial install amounts to the same process as setting up a new Android phone or tablet. It can run in full screen or windowed mode, and when you try to install anything it makes you go through Google Play setup.
In full screen, you’ll note it looks just like you’d expect. There are some integration features that make it easier to use the mouse with an OS made for touch as well. I don’t know whether BlueStacks added them or if it’s just the evolution of Android, but this is MUCH better then the last time I tried to use Android on a desktop. I suspect BlueStacks deserves some of the credit.
For this article, I selected an app on the home screen called Taichi Panda, which in the four minutes I played it as part of my “research” makes no sense to me whatsoever. There’s a bear, some people, and some sort of monkey thing called a “Rage Ape", and they all hate each other from what I can tell. I guess that’s what my parents thought about Super Mario Brothers, too. (My Mom: “Why does he hate turtles so much?” Me: “Why do you LIKE turtles so much, Mom? Gosh!”)
The game plays pretty well, with only the occasional glitch which could be the result of me running BlueStacks virtually in Windows, which itself is running in a Parallels VM on my 2012 MacBook Air. Its fans are just on right now. I’m sure that a lesser app, like a business app, would perform very well.
One of the cool things about BlueStacks is that when you install an app, it creates a shortcut in Windows. That means that we can launch the Android app via the command line, and it also means we can easily publish an Android app. In the case of Taichi Panda, the command line is:
"C:\Program Files\BlueStacks\HD-RunApp.exe" -p com.snailgameusa.tp -a com.snailgameusa.tp.LaunchingActivity
Starting to see how this fits together? If we can use BlueStacks in our existing Windows virtual desktop environment, we can publish Android apps to users and deliver them via the same protocols and clients that we’re already using.
So why would you want to do this? Right now, you wouldn’t–it’s too immature. You’re taking an OS made for mobile, virtualizing it on a desktop, and then sending the applications down to mobile devices. If you’re a glutton for complexity, then maybe, but for now that presents challenges. The most notable one is with regards to the keyboard. For some reason, the local iPhone keyboard going through the RDC client to Windows, then into BlueStacks is problematic. Another is the display, which is optimized for desktops.
Of course those are superficial. There are other challenges, too, like push notifications. BlueStacks has a mechanism that sends push notifications to Windows as pop-up notifications, but how would those get sent down to the remote desktop client? It’s not impossible, but it’s not there today.
In the future something like this could become a possibility. It would take some collaboration between BlueStacks and Microsoft (or VMware, or Citrix), but if you’re a company with a handful of Android apps that you want to deliver from the datacenter and there is value for you to do that in the same way that you do Windows desktops and applications, I could see this happening. It, like anything else, isn’t for everyone, but it could scratch a few itches out there, and it could be a nice value add for the desktop virtualization companies’ platforms.
I want to be clear: this is definitely not the same kind of thing that the VMI vendors are offering. Those platforms feature tailor-made protocols, advanced provisioning, cloud services, and support for things like push notifications. If you have a strategic directive to leverage VMI, go with one of them. But if there’s an oddball Android app here or there, you might be able to put this DIY VMI to use.