I don't know how many Android developers have a problem with the tragic performance of Android virtual machines, anyway, my opinion is: That's too much speed!
Why are Android virtual machines much slower than iOS and WP7 's virtual machine? For the following reasons:
1. The Android simulator simulates the ARM architecture (Arm-eabi), while the target architecture for iOS and WP7 simulators is x86, and the App running in iOS emulator is compiled to x86. So the Android simulator needs to do some extra binary translation work.
2. The Android simulator is for QEMU's full system mode, which means that it needs to start the entire GUEST system and initialize various analog devices when it simulates. In contrast, IOS and WP7 simulators are just user-mode simulations.
3. The Android simulator also needs to run a Dalvik VM to perform the bytecodes of Android apps.
To sum up, slow one of the main reason is that the virtual machine is not run on the x86 but simulate arm, there is no way to get a x86 of Android?
The answer is of course ——— Open Source project android-x86, the Cow B open source project will be transplanted Android to the x86 platform, the system will not need to simulate the operation of ARM, so that Android can be installed directly on the PC or virtual machine running smoothly.
Everything's all right, just the east wind, I'll tell you what I use Android-x86 and VirtualBox to build the whole process of the handset development simulator
1. Download android-x86 System image file
First download Android-x86-2.2-generic.iso (click on the link directly), Mirror file about 82MB
2. Create a virtual machine on VirtualBox
Operating system Select Linux, version choose Linux 2.6
Memory recommended for 512MB
Hard drive default 8GB, because it is developed, 8GB more than sufficient
After the virtual machine is created, you will need to modify some of the configuration
The first is to adjust the network card, the connection method recommended to choose bridged adapter such a virtual machine in the local area network has an independent IP can facilitate access, and then control chip to select Pcnet-pci II, or android-x86 can not recognize the network card
If you want to have a sound, you need to set the control chip to Soundblaser 16 in the Sound Settings panel
Set the virtual machine's optical drive to the android-x86 ISO we just downloaded and start the virtual machine
The place of thought original article, declined to reprint
3. Install Android-x86 to virtual machine
After the virtual machine starts, you can see the following image
The first and second items are that you don't have to install the high, medium-dpi android-x86, and if you're interested you can run the x86 speed first.
We're going to install Android to the hard drive, select the last item and return
Installation–install android-x86 to Harddisk
Next we will enter the installation interface, the interface effect is as follows
We chose create/modify partitions to create the partition
First, we select New to create the partition
Select Primary to create the primary partition
The partition size takes the default size
Then we set the partition to boot (check bootable and return), this is the partition's flag will show boot, then we choose Write to write the changes to the hard disk (after you choose Write, you need to enter Yes to confirm)
After the partition is finished, select Quit to exit, and after exiting, we can see that the new partition we just allocated is recognized.
Press ENTER to select the partition, then ask what partition format to format the partition, the recommended choice of ext3
Select a good format after the system will confirm with you again, input Yes installation will start
Midway through the installation will ask you if you want to install grub, so be sure to select Yes because we need grub to customize startup Android
When you install GRUB, you will be asked if you want to install the/system directory as read/write mode (set to read-write can be more convenient for debug, but will take up more space and installation time), select Yes
After the carriage return, the installation will begin.
After the installation is complete, a menu pops up
Three options are
Running Android
Create a virtual SD card
Reboot
Because we are sure to use SD card, so here we create a virtual SD card
The size of the SD card will be asked to create, according to your needs, I set this is 128MB
The installer will begin initializing the SD card after the carriage return.
After the format is completed, you will be prompted to reboot, and then reboot after exiting the system disk in the virtual machine's CD drive, after reboot, you will be able to enter the Android system.
Note using the mouse in the Android system requires virtual box to prohibit automatic mouse exclusive, otherwise the mouse will not work in Android
Android-x86 Run screenshot:
The place of thought original article, declined to reprint
4. Custom Virtual Machine Resolution
We certainly need to test different resolutions when we develop, so how do we customize the resolution of the Android virtual machine?
First we need to start with the setup of Virtual box.
Open cmd, enter virtual box under the directory you created the VM, I created the virtual machine called android-x86, my account is administrator, the path on my Windows XP is
C:documents and Settingsadministratorvirtualbox vmsandroid-x86
Attention:
1. In different operating systems, the path will be different, according to the actual operating system to find, in principle, in your current user's personal folder
2.android-x86 is the name of the virtual machine I created, if yours is different from mine, please modify the name of the virtual machine you created
Here we need to use the command line tool provided by VirtualBox to add a custom resolution to your virtual machine, for example, I want to add a current popular mobile screen resolution 480x800, then we enter the command as follows
"C:Program FilesOracleVirtualBoxVBoxManage.exe" Setextradata "android-x86" "Customvideomode1″" 480x800x16 "
In the above order, the bold part is to be modified according to the situation on your own computer, the relevant explanation is as follows:
"C:Program FilesOracleVirtualBoxVBoxManage.exe"
is the full path to the Virtual box command-line tool VBoxManage.exe, depending on the actual path of the VirtualBox installed on your computer.
Note: If the path contains spaces, use double quotes to wrap the entire path
Android-x86
This is the name of the virtual machine.
480x800x16
This is a custom resolution, please change according to your own needs, the following 16 refers to 16-bit color, do not modify
If you want to add more resolution, please change the parameters and run the command more than once
After the modification, start the virtual machine, in the Android startup screen Select the option to press two times e key to edit the kernel boot parameters, add a parameter vga=ask, the specific process is as follows
Start Screen Press e key
Enter the new screen and press the E key once again
Then enter the kernel parameter edit state, add parameter Vga=ask
After editing, press ENTER to save the changes, then return to the previous page, at this point, press the B key to start
At this point the system will prompt you to enter the resolution selection interface, we press ENTER to continue
After entering the page, you can see all the system support resolution, then please look for the resolution you just set, in the following figure, you can find the resolution of the previous set of 480x800, note that the previous 16 code 360, if you want to start the virtual machine at this resolution, we enter 360 and then return to
When you enter, Android will start at the resolution you set, and the image below is a screenshot of the android-x86 virtual machine starting at 480x800 resolution.
Attention:
If you need the system to start with the resolution you specify, you need to perform the steps above each time the Android virtual machine starts to modify the kernel parameters to start Android
If you want Android to default to the resolution selection screen at startup or to start the virtual machine by default at the resolution you specify, you can refer to the following steps
1. Enter the android virtual machine and press ALT+F1 to enter the command line
2. Input Mkdir/data/fs
3. Mount the hard drive and use the following command
MOUNT-T hard disk format/dev/block/hard disk name/data/fs
Hard disk format for your virtual machine hard disk format, I am here is the ext3 hard disk name is your virtual machine
Hard disk name I this default is SDA1, the first SATA hard drive, Linx under the specific hard disk naming rules please Google
Mount-t ext3/dev/block/sda1/data/fs
To hang the hard drive on the/data/fs folder
4. Vi/data/fs/grub/menu.list Edit Launch Menu list (vi This command line editor how to use Google itself)
5. As it was just started, save after adding vga=ask at the end of the first kernel line
6. Restart the virtual machine, and you'll see that every time Android starts, it asks for resolution.
5. Remote debugging development on virtual machines using Eclipse ADT
Now that the virtual machine is configured, here's how to use Eclipse to run and debug the android application
When I set up the virtual machine in front of the virtual machine to set the network card bridged adapter, so that the virtual machine in the local area network equivalent to a stand-alone computer, you can set up an IP or its network card set to DHCP state to automatically obtain IP, I only explain the following in How to view the Android virtual machine IP in DHCP state:
Enter the android virtual machine, press ALT+F1 to enter the command, enter the NETCFG command to view the network status, the reference interface is as follows
Where eth0 is the current network card, followed by the IP address is the IP address obtained through DHCP
And then press ALT+F7 to return to the graphical interface after you figure it out.
At this time we open eclipse, into the Android development plug-in settings interface, select Ddms, check the use ADO host, and in the ADT host value of the virtual machine to fill in the IP address, the specific interface see the image below
Select OK to save, the Ddms interface on the device menu to choose to restart the ADB service, restart, you can see the DDMS connected to the virtual machine
You can then run and test your Android program on the virtual as usual, enjoy~
Finally, summarize the advantages and disadvantages of this environment:
Advantages:
1. High speed, compared to the Android SDK virtual machines, whether it is to start or run, the virtual machine quickly on a lot of, so you can run a smooth test of your Android applications, of course, can also comfortably experience the Android system on the computer:
2. Can simulate the environment of the tablet computer
Disadvantages:
1. Hardware support or tragedy, like phone calls, text messages, gravity sensors, GPS cameras, whatever. You still have to get a real machine debugging (but these things are not the simulator can do)
In addition to the Virtual Machine home page, return, shutdown, menu corresponding to the keyboard keys
Home key-> win key
Return key-> ESC
Hang machine key-> Alt+f4
Menu key-> Keyboard Menu key, general in the right win key and CTRL key between