Andrea Danti - Fotolia


Delivering virtual Android apps to devices sans VMI platform

If you have a reason to deploy VMI to users, you want a purpose-built VMI platform, but if you just want to try out an Android OS on your iPhone, you can use virtualization and RDP to play around.

If you're not familiar with VMI, imagine remote desktop, but for Android. Instead of managing Android apps running on Android phones, put the Android operating system and applications in a data center and deliver the UI via a remote protocol. There's a lot more to it than that, but in a nutshell that's what we're talking about.

I woke up one morning at three a.m. before BriForum London, and as I laid there cursing the jetlag, it occurred to me that it might be possible to do a quick-and-dirty proof-of-concept for virtual mobile infrastructure (VMI) using technology that I'm already very comfortable with: virtualization and the remote desktop protocol (RDP). All I needed was a way to run Android, and within just a few minutes I found my answer: BlueStacks.

BlueStacks is an application that essentially creates an Android virtual machine (VM) on a Windows computer. It was perfect for me because it presents itself as an application -- not as a hypervisor with VMs -- and any Android apps you install within BlueStacks have corresponding Windows shortcuts. That means I can use the built-in functionality in RemoteApp to quickly publish just the BlueStacks application, and I can have it automatically launch into an app of my choosing (in my case, Candy Crush).

With a surprisingly small amount of duct tape and bubble gum, the entire demo environment was up and running in about 30 minutes. I used my iPhone to connect to a remote Windows computer running via RDP to play the Android version of Candy Crush. Because the new RDP client is aware of touchscreen applications and gestures, it remoted those back to Windows machine. Playing a game that uses swiping actually worked really well.

The only giveaway in the screen shot is the RDP client menu at the top of the screen.

Where the demo falls short

A nice quick demo, but it has limitations.

To be clear, this is not intended as a way to circumvent buying a dedicated VMI platform. If you have a use case for VMI, you should find a purpose-built product that supports everything you need to do. The list of things this little mock-up can't do is far longer than the list of things it can. For example:

  • Don't try to type anything. The iPhone keyboard might be passed through to Windows, but it does not work with the soft keyboard inside Android.
  • The display is still optimized for a desktop, so the Android menu items on the bottom are almost too small to use.
  • VMI platforms have intelligence that allows the sensors on the phone like the GPS, camera or accelerometer to send data back to the remote application. If you access Google Maps via the remote instance of Android it will show where your phone is, not where the server is. That's not the case here.
  • VMI platforms have advanced techniques for handling push notifications, this demo doesn't.
  • VMI protocols are purpose-built to deliver mobile applications via mobile networks, this demo isn't.

Nevertheless, it's a fun demo that's easy to do when you're bored some Friday afternoon. When you see it in action, you'll immediately start to think of ways you could put it to use. What if you could use the very same virtual desktop that users access to also deliver Android apps (with all the benefits of remote Windows apps)? What if you have a mix of Windows Modern UI apps and Android, but want to access them from a phone?

The future of VMI

Despite the limitations, there are some tweaks or existing technologies that could be reconfigured to make the experience more complete. About 18 months ago, Citrix acquired Framehawk, a company that was focused on remoting applications on unreliable networks (e.g. mobile networks). Could that technology be added to HDX to facilitate a better experience? Citrix Receiver is already aware of some of the device's sensors, so that could also be modified to suit the purposes of VMI.

BlueStacks and Microsoft could add the ability to tweak the experience, say by passing the executable a parameter that says to adjust the screen for a mobile device rather than a desktop one. It would change the way items are arranged on the screen, make buttons more finger-friendly and take advantage of the sensor data provided by the endpoint device. For Modern UI apps, Microsoft already has Universal Apps for Windows 10 that are designed to run on desktop and mobile devices with appropriate UIs for each device, so they'd only need to expose that to the Remote Desktop Services components.

This reminds me an awful lot of the early days of Terminal Server, cobbling together different types of technology in an effort to make something new. Will any of this take off? Maybe, maybe not. But with so much activity going on around VMI, it's not hard to think about a big vendor getting into the game.

Next Steps

Discover the benefits and drawbacks of VMI

Will Citrix release a VMI product?

VMI will give you the benefits of VDI without its disadvantages

Dig Deeper on Application virtualization and streaming