Faster Android Emulator Alternative – Using VirtualBox

Bobby Chan

The Android SDK Emulator can be quite slow on some systems, which makes Android app debugging especially painful for those who aren’t in possession of a physical device to test their Android apps on. Thankfully there is a solution by the guys at Android x86.

The basic premise is to host the Android OS on VirtualBox. So far Android x64 only supports up to Android 2.2 Froyo, but they are currently working on porting over Android 2.3 Gingerbread. Let’s skip the details and get started, as this is a fairly long tutorial.

Step 1: Install VirtualBox

  1. Go to, and click the “downloads” link on the side. Download the version for your system.
    Version 4.0.10 for Windows
    Version 4.0.10 for OS X
  2. Install Virtualbox using recommended settings. Eh, it’s simple enough, as there’s nothing to configure.

Step 2: Download the Android OS ISO

  1. Go to, and download the generic ISO that matches your targeted Android version. (At the time this post was written, that file would be android-x86-2.2-generic.iso)
    Note: Click the “view” link under the file to download the ISO.

    Android 2.2 Froyo – android-x86-2.2-generic.iso

    Android 2.3 Gingerbread – android-x86.2.3-4th-test-110620.iso
    There are more Android OS ISO versions available at

Step 3: Creating the Virtual Machine

  1. Open up “Oracle VM VirtualBox“.
  2. Create a new virtual host by clicking “New. A dialog pops up, click next.
  3. Name the virtual machine whatever you want, it doesn’t really matter. The operating system is going to be Linux version 2.6. If you are running a 64-bit operating system, choose the 64-bit version of Linux.
  4. In the next screen, give your virtual machine 512MB of RAM.
  5. In the virtual hard disk screen, make sure  “Boot Hard Disk” is checked and that  “Create new hard disk” is selected. Hit next.
  6. A new dialog will pop-up. When it prompts you for the hard disk storage type choose “Fixed-size storage“. Hit next.
  7. Location can be left as the default. Set the size of the virtual hard disk to 2 GB (that is more than sufficient for the emulator). Then finish the dialog, and a virtual hard disk will be created.
  8. Click finish again, and the virtual machine will be created.

Step 4: Adjusting Settings

  1. Select the virtual machine you just created and change the settings.
  2. Now to load the Android ISO disk file, go to “Storage“, under “IDE Storage” click “Empty“. Click the disk icon beside CD/DVD drive and “Choose a virtual CD/DVD disk file…”
  3. Now browse to the location of the generic ISO file you downloaded earlier, and open that file. We just mounted the ISO file to the virtual machine.
  4. Next, we have to change the sound device. With the settings dialog still open, go to Audio. Set the audio controller to “SoundBlaster 16“. ICH AC97 will not work.
  5. The next thing to set up is the network. Go to  Network (obviously). Change the Attached To setting from NAT to Bridged Adapter.
  6. If the “name” dropdown has more than one network adapter, select the one that connects to the internet, otherwise just leave it as the default.
  7. Click OK to save the settings.

Step 5: Running the Emulator

  1. Select your virtual device and click Start. Ignore the VirtualBox dialogs and just click OK.
  2. Your mouse won’t work at this point in the BIOS so just use your arrow keys. Select  “Live CD – VESA Mode“. Hit the return key.
  3. The emulator will now load up. You should see the following screens.
  4. You’ll notice that the your mouse still won’t show as you hover over the VirtualBox or emulator window. To fix this, go to the “Machine” dropdown menu at the top left corner and click “Disable mouse integration“.
  5. Click anywhere on the screen and you’ll get a VirtualBox dialog prompting you to capture the mouse pointer. Click “Capture“.
  6.  You can now move the mouse around, anywhere within the VirtualBox window. But what if I want to move it outside the window? Press the right control key and it will unlock the mouse. When you want the mouse back on the emulator, click anywhere on the screen and the repeat previous step.
  7. (If you have never used an Android device, drag the lock out to unlock it.) You will then be brought to the home screen.

Step 6: Connecting Eclipse & ADB with the Emulator

  1. Press Alt + F1 to bring up the console in the emulator (IE. VirtualBox window). (Alt + F7 To bring back the Android GUI)
  2. Type “netcfg“, hit enter. Copy down the emulator’s IP address.
  3. Assuming that you have ADB already installed and set up, open up the command prompt. Type in “adb connect <emulator’s IP address>“.
  4. If everything went well, then it should say something similar to “connected to <emulator’s IP address>:5555“.

    If it is unable to connect, check your virtual machine’s network settings. Make sure it’s the correct adapter. If that doesn’t fix it refer to the following link:

    If the command was not recognized, it means you haven’t set the path environment variable to your Android SDK folder location. Refer to to set it up, and when complete retry step 3.
  5. Close the command prompt. Now to connect Eclipse with the emulator, open up Eclipse (I’m assuming the Android SDK and plugins are already installed.)
  6. If you don’t already have an Android project opened, create a new one that matches the version of your Android emulator’s version. Note: If you do have one opened, make sure the app’s Android version matches the emulator’s version.
    1. File→New→Project…→Android→Android Project
    2. Give your test Android app a name. It could be something like “AndroidTestProject”
    3. Leave the “Contents” section as-is. Under the “Build Target” section, check off the version of your Android emulator.
    4. In the “Properties” section, give your app a package name. An example would be “com.test.project”. Package naming is really irrelevant for this tutorial, but if you care to learn more about it, feel free to look it up on Google. As for this tutorial, just make sure it starts with “com.”
    5. Click “Finish”
  7. Go to Run→Run configurations…
  8. On the left-hand side, double click “Android Application“, and then under it, click “New_configuration
  9. Click on the “Target” tab. In the “Deployment Target Selection Mode” section, choose “Manual“.
  10. Click “Apply” and close the window.
  11. Now run and compile the project.
  12. Depending on if you have any existing Android Virtual Devices, a dialog may pop-up prompting you to choose the device to install your test app to. Select your Android Emulator, and click OK.
  13. It will compile and your app will be installed to your emulator. If you see your app, then you’ve done it!


Testing Your App Again

After you’ve set this all up, you don’t need to do all of it over again. In order to set up the emulator after restarting the computer, you have to do the following:

  1. Start up the emulator normally. (Open VirtualBox, start the virtual device, then choose Live CD – VESA Mode.)
  2. Get the emulator’s IP address (Alt+F1, then type in netcfg).
  3. In the host computer, open up the command prompt and type in “adb connect <Your emulator’s IP address>“. You have to do this every time the computer restarts.
  4. Run & compile your project in Eclipse and choose the Android Emulator device.
  5. You’ve once again installed your Android app to the emulator!

Well there you go. It was one long setup, but definitely worth it if you don’t own an Android device.


Enter Confirm
Escape Back/return
Alt + F1 Show console
Alt + F7 Show Android GUI
Arrows Moving navigation
Right + Control Toggle mouse capture

  • bogdan

    Very interesting. I will try this idea!

  • Varunjampani

    Is it possible to use ‘monkeyrunner’ tool with this emulator?? If yes, can you please let me know how to use it. I tried using it but monkeyrunner is not able to connect to this emulator.

  • Joseph Lu

    Great idea, I will try it.  you know the emulator in SDK is toooooooooo slow.
    Thank You!

  • Joseph Lu

    Great idea, I will try it.  you know the emulator in SDK is toooooooooo slow.
    Thank You!

  • Peter Frazier

    any idea on how to add sd card? 

    • Bobby Chan

      There’s a tutorial here on saving data to a virtual disk:

  • No

    Thanks! Great tutorial – really easy to follow.
    Only thing is latest version of VirtualBox has some slightly different or differently named choices.
    Any way to change the resolution of the VM?

    • Bobby Chan

      On the live CD boot screen, where you choose VESA MODE, press TAB before it boots up. On the command, add to or change the parameter vga like so

      “vga = 788″ (800×600)”vga = 791” (1024×768)
      “vga = 794” (1280×1024)
      or “vga=ask” (show list of available resolutions)Then press enter.

  • Luiz R. Rodrigues

    Very nice and very fast.

    Using Android Simulator in MacOS = Impossible work!


    But I have a problem.. When try browsing for jQuery Mobile web site (Documentation and Demo) the browser close.

    I’m deploy a app in PhoneGap and using jQuery Mobile to this, so have same problem… Open my app, show home page, but if try go to other page app close.

    Any help?

  • cvoronin

    My application uses Google API. When I try to install my application on this VM, I see an error: Installation error: INSTALL_FAILED_MISSING_SHARED_LIBRARY

    Google API seems not to be included in this ISO :(

  • tiny gipxy

    tks very much

  • George

    Thanks for the help. I get everything as you have explained in the tutorial. The only problem is, i need a emulator for the samsung galaxy tab 7. The screen size for the same is 1024 * 600 . How can i give this screen resolution for my virtual Box Emulator

    • Petemccarthy

      Did you ever get this solved?

  • George

    Hi Thanks very much. This worked for me. However my problem is i wanted the emulator for samsung Galaxy Tab 7. Can you help me on how to set it

  • saurabh

    very very usefull

  • Deepakchougule111

    Very Awesome Blog but how about Menu Button?? If  some app uses menu then wht?? how to handle it

    • Prallin


  • Deepthi Aravind

    Very useful !! Thank you 

  • manish bansal

    hi, actually i am not able to connect adb with emulator…it always says unable to connect…i have checked my emulator’s network settings..its same as you have mentioned above..i have also tried changing it to host only adapter…but still error persists..plz help.

    • mahesh

      absolutely same problem.. n cudn find an answer anywhere!!

    • Bobby Chan

      You may need to set up a DHCP server.

      Another option may be to use NAT and PCnet-Fast III as the network adapter, as described here:

      Let me know if that works.

  • Avillas

    Tnx so much!

  • Eric Pabst

    Very cool!

  • Deepikamandapalli


  • Adithya

    What is emulator IP adress

  • Gus Trik

    I followed the described procedure, but on the next start-up of my laptop its network card did not work and it was inaccessible. I tried everything but in vain, so I uninstalled virtualbox and it started running again. I believe there was a conflict. Can anyone help me?

  • Gus Trik

    I followed the described procedure, but on the next start-up of my laptop its network card did not work and it was inaccessible. I tried everything but in vain, so I uninstalled virtualbox and it started running again. I believe there was a conflict. Can anyone help me?

  • Jhonnatan Cebidanes

    Very nice! Perfect! Faster test app.

  • guest

    Hi, any way to change the resolution of the emulator? or get it to run in portrait instead of landscape?

  • Grega Tratnik

    This is great thanks a lot! :) it is very fast instead of android sdk emulator

  • Ronaldo9

    Thanks a lot this works perfectly

  • zameer

    hi bobby!
    i have installed everything properly but i’m not able to figure out how to add an sdcard to the emulator. Because when i try to download or install any app its asking for an sdcard. please tell me the solution the soonest,

  • Liamci

    works great ! much more faster than the emulator . thanks for the tutorial 

  • Pingback: Mono for Android & Android on VirtualBox « Memory extender()

  • Nishant Bajracharya

    works great and works much more faster than the emulator … thanx for the tutorail….. THANX

  • Bla

    I tried to use other Android OS ISO but there is no eth0 to connect to.

  • Shikshya Bhattachan

    any idea how to make it work with Mac OS X?  It says ”  vt-x/amd-v has been enabled but not operational..”

    • Bobby Chan

      You’ll need to enable hardware virtualization in your BIOS. Not exactly sure if, or how you can do that on Mac OS X.

  • Lester Ingber

    Hi.  I tried this process on my HP dv8t/Win7 x64 with the latest VB (I use Ubuntu on this VB regularly), but I get stuck at Step 5.3-top (black screen with android logo).

    I used android-x86-2.2-r2-tx2500.iso, since the  android-x86-2.2-generic.iso version you mention is deprecated (probably was OK when you first wrote this?).

  • Jayson Tamayo

    How do I emulate a 320×480 device using the Virtual Box? My application should be run a 320×480 device. Help me please. 

    • Bobby Chan

      In Step 5, instead of selecting VESA Mode press TAB. Change or add the parameter “vga=ask” (without quotes) and press enter. 

      It will boot up prompting you “Press ENTER to see video available modes…” So press enter. Then select the video resolution that you want.

      • Jayson Tamayo

        I can’t find a mode for a 320×480 device. :(

        • Mehdï Armachï

          You have to add it yourself, the way to do that is very simple.
          First you have have to open the folder containing the files of the Virual Machine, then open the .vbox with notepad.
          Paste this line :

          after the ExtraDataItem stuff, usually it’s arround the 23rd line.
          After all this, just repeat the previous process and the new resolution will appear in the list.

          NB: In order for this to work, both the Emulator and VirtualBox itself should be shut down.

          Good luck 😉

          Don’t pay intention to the line below, it’s just a thing that Qisqus does.

          • helena

            It does not work for m/ What to do?

  • SabbatoR

    Really great ! Thanks :)

  • Emile Jobity

    Thanks alot very informative:-) help me out. GOD BLESS u.

  • RishiKant

    I followed the step shown by you, everything remain fine until I reached step 5, after that only the screen showing Android written in the middle of the screen remain constant with no progress

    What should I do to go further

  • RishiKant

    I followed the step shown by you, everything remain fine until I reached step 5, after that only the screen (Android Loading Screen) showing Android written in the middle of the screen remain constant with no progress

    What should I do to go further

  • helena

    Excellent article/tutorial!!!!
    Step 5 was problematic: Try do download all available downloads until it works (This applies to the network fix too).

  • gregko

    Excellent, thank you! All worked as described. Only problem – cannot login to Google account. Any attempt to setup and account results in empty screen, only offering some WiFi configuration options.

  • Shylah Barnes

    This worked perfectly! I am running Windows 7 Home Premium 64 and this worked for me and I have followed the instructions exactly, using the same software and tool versions that Bobby has mentioned in this article. Thanks so much! Bobby! :)

  • Tung Mai Le

    Hi Bobby, kudos for this article. I managed to connect to the Android Emulator in VB and install my apps on it, following instructions in step 6.
    However, my device can’t connect to the Internet, although I use Bridged Atapter in step 4.5 above. What should I check? Tks

  • Ion Farima

    If you don’t want to type each time the things in the cmd you can create a text file and write in :


    @Path=%path%;(the path to your adb.exe);

    @adb connect (the ip adress obtained from vBox (netcfg)


    and then save as myconnect.bat
    Good luck! 😉

  • Guyra

    Fantastic, thanks for this tutorial!

  • Chris De David

    Thank you, Worked like a charm! :-)

  • Simon


  • Qaiser Mahmood

    AlhamduLILLAH worked perfect with android-x86-2.2-r2-eeepc