Faster Android Emulator Alternative – Using VirtualBox
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
- Go to http://www.virtualbox.org, 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
- Install Virtualbox using recommended settings. Eh, it’s simple enough, as there’s nothing to configure.
Step 2: Download the Android OS ISO
- Go to http://www.android-x86.org/download, 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 http://code.google.com/p/androbox/downloads/list
Step 3: Creating the Virtual Machine
- Open up “Oracle VM VirtualBox“.
- Create a new virtual host by clicking “New“. A dialog pops up, click next.
- 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.
- In the next screen, give your virtual machine 512MB of RAM.
- In the virtual hard disk screen, make sure “Boot Hard Disk” is checked and that “Create new hard disk” is selected. Hit next.
- A new dialog will pop-up. When it prompts you for the hard disk storage type choose “Fixed-size storage“. Hit next.
- 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.
- Click finish again, and the virtual machine will be created.
Step 4: Adjusting Settings
- Select the virtual machine you just created and change the settings.
- 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…”
- 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.
- 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.
- The next thing to set up is the network. Go to Network (obviously). Change the Attached To setting from NAT to Bridged Adapter.
- 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.
- Click OK to save the settings.
Step 5: Running the Emulator
- Select your virtual device and click Start. Ignore the VirtualBox dialogs and just click OK.
- 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.
- The emulator will now load up. You should see the following screens.
- 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“.
- Click anywhere on the screen and you’ll get a VirtualBox dialog prompting you to capture the mouse pointer. Click “Capture“.
- 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.
- (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
- Press Alt + F1 to bring up the console in the emulator (IE. VirtualBox window). (Alt + F7 To bring back the Android GUI)
- Type “netcfg“, hit enter. Copy down the emulator’s IP address.
- Assuming that you have ADB already installed and set up, open up the command prompt. Type in “adb connect <emulator’s IP address>“.
- 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: http://www.android-x86.org/documents/debug-howto.
If the command was not recognized, it means you haven’t set the path environment variable to your Android SDK folder location. Refer to http://www.cuteandroid.com/tips-for-android-developer-android-sdk-tools-path-setting to set it up, and when complete retry step 3.
- 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.)
- 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.
- File→New→Project…→Android→Android Project
- Give your test Android app a name. It could be something like “AndroidTestProject”
- Leave the “Contents” section as-is. Under the “Build Target” section, check off the version of your Android emulator.
- 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.”
- Click “Finish”
- Go to Run→Run configurations…
- On the left-hand side, double click “Android Application“, and then under it, click “New_configuration“
- Click on the “Target” tab. In the “Deployment Target Selection Mode” section, choose “Manual“.
- Click “Apply” and close the window.
- Now run and compile the project.
- 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.
- 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:
- Start up the emulator normally. (Open VirtualBox, start the virtual device, then choose Live CD – VESA Mode.)
- Get the emulator’s IP address (Alt+F1, then type in netcfg).
- 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.
- Run & compile your project in Eclipse and choose the Android Emulator device.
- 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.
|Alt + F1||Show console|
|Alt + F7||Show Android GUI|
|Right + Control||Toggle mouse capture|