Developing and Debugging Android Applications on Windows Vista/Server 2008 x64

Google recently released their Windows USB driver for the Android Debug Bridge. This driver allows you to deploy and debug Android applications on a real device. And it's a snap to install and use on a 32 bit Windows operating system. But if you have a Windows x64 OS, you are outta luck. There is no 64 bit driver.

I mulled over a couple options like switching back to a 32 bit OS, dual booting Windows Server 2008 with Linux or Vista. Those are all pretty cruddy solutions, and as I was driving home, an idea dawned on me that was crazy enough to work. VMWare has a feature that allows you to take a USB port on a host machine and delegate it to a client VM. I was hoping that this would work with the Android Debug Bridge. I installed VMWare Player and grabbed an Ubuntu appliance, and voila, it worked!

Basic instructions to do this on your own:

  1. Get VMWare Player.
  2. Download Ubuntu from the appliance list on the VMWare website.
  3. Open the VM and update everything in Ubuntu. (The default user/password on the appliance I downloaded was user/user).
  4. Follow these instructions to set up Ubuntu to recognize and connect to your phone.
  5. In Ubuntu, download Eclipse and the Android SDK as per the instructions found on Google.
  6. In Ubuntu, download the JDK using the "sudo apt-get install sun-java6-jdk" command.
  7. Set up your Eclipse environment per the instructions found on Google.
  8. Plug in your phone, and give VMWare Player control of it. For me, the phone was called "High Speed Composite Device" in the list of icons in the lower right corner of VMWare. I now see it listed as "High Removable Disk".
  9. Follow the instructions found on Developing on Device Hardware to set up debugging on Ubuntu.

That's it! Good luck.


Alec said...

Hi, Thanks for taking the time to write this up since it helped me set up my dev environment.

Koush said...

There is actually an x64 driver for Android now, so the VM isn't necessary!

GinoA said...

I've been trying to do basically the same thing. I'm using Windows 7 as the host. I can't get VMWare to "see" the USB device and pass it on to the client Ubuntu. Any thoughts?