用VirtualBox虚拟Android 2.2

苦于Android SDK模拟器启动慢的我,不断在寻找新的解决方案。最近发现一个Android-x86的项目不错,向大家推荐下

Android-x86可以使Android运行在x86的CPU上面,目前最高支持到2.2版本,并支援虚拟机虚拟

于是我马上下了android-x86-2.2-generic.iso 来试试

开始使用的是 Microsoft Virtual PC 结果失败了,花屏。于是改用VirtualBox

首先,在VirtualBox新建一台虚拟机,配置如下:

  • OS Type: Linux 2.6
  • Base Memory: At least 256MB, 512MB is better.
  • Video Memory: 8M
  • CD/DVD-ROM image: android-x86-2.2-generic.iso
  • Sound device: change to Sound Blaster 16. ICH AC97 will not work. (if you have a solution, let us know)
  • Network device: PCnet-Fast III, attached to NAT. You can also use bridged adapter, but you need a DHCP server in your environment.

具体安装步骤,请参考:

http://www.android-x86.org/documents/installhowto

安装成功后可以进行一些配置,镜像本身是支持简体中文的

android22

小窍门一:

如何虚拟SD CARD?

  • Create two partitions by fdisk or cfdisk. Format them to ext3. Then reboot.
    # cfdisk /dev/sda
    # mdev -s
    # mke2fs -j -L DATA /dev/sda1
    # mke2fs -j -L SDCARD /dev/sda2
    # reboot -f
  • On the boot menu, select VESA or Debug mode, press TAB, then add
    DADA=sda1 SDCARD=sda2

小窍门二:

如何修改引导菜单GRUB?(更改默认分辨率,默认加载SD CARD时需要)

  1. 先用Debug Mode进入命令行
  2. mount -o remount,rw /mnt (去掉mnt的目录的只读)
  3. chmod 777 /mnt/grub/menu.lst(去掉menu.lst文件的只读)
  4. vi /mnt/grub/menu.lst(启动文本编辑器,编辑menu.lst文件)
  5. 在适当的地方加上启动参数,如:虚拟SD CARD (SDCARD=sda2),更改分辨率为800*600 (vga=788)
  6. 按[ESC],输入 :wq 保存退出vi
  7. 可以用cat /mnt/grub/menu.lst查看修改后的结果
  8. 重启 ("reboot -f")

小窍门三:

如何测试自己编写的程序?

由于虚拟机工作在有DCHP的环境是可以访问网络的

所以我在电脑上架设了IIS,目录指向bin文件夹

测试的时候,用虚拟机访问内网的网站http://192.168.1.10/lsw.apk,下载进行安装测试

关于这套方案

优点:启动速度快,不用每次漫长地等待官方SDK模拟器的开启,VirtualBox是可以保存状态的

缺点:没有IDE集成,无法支援断点调试,环境安装还需具备一定的Linux知识