virtualbox 安装 android 经验总结

时间:2022-12-05 23:55:06

装了好多个版本,最终总结一下遇到的问题,

1、直接下载的镜像文件没有找到如何设置分辨率的方法,因此放弃使用

2、在安装过程中,首先创建虚拟机,在virtualbox中创建硬盘的时候一定要选HDD格式,否则在安装好安卓以后点击设置里面的存储,会出现“设置”已停止工作的错误。

3、我安装过程中没有见到创建flake sdcard的选项,不知道怎么回事,也分了两个分区,一个主一个逻辑,但是后面只有star和reboot 两个选项,没有创建虚拟sd卡的选项,暂且搁置。

按以下方法修改SDCARD,不知为何,进入安卓以后点击设置里面的存储,会出现“设置”已停止工作的错误。

修改grub的menu.lst

启动虚拟机,到debug mode下

virtualbox 安装 android 经验总结

以 RW 模式重新挂载分区

# mount -o remount,rw /mnt

编辑文件:

# vi /mnt/grub/menu.lst
  • SDCARD=<device node>

    Specify a device node to be mounted. For example, SDCARD=sdc1 (or /dev/sdc1, /dev/block/sdc1). You can specify a whole disk (e.g., sdc) or a partition in the disk (e.g., sdc2). If specifying a whole disk, vold will use the first available vfat partition, or the whole disk if no partition table found.

  • 上面为官网的说明,具体在menu.lst里面的最后
SDCARD=sda5

在debug mode下重启Android-x86

# /system/bin/reboot

修改menu.lst文件也可以在安卓启动下修改,参考:

如果你想Android在启动的时候就默认进入分辨率选择画面或者默认采用你指定的分辨率启动虚拟机,那么可以参考以下步骤

1. 进入android虚拟机后按alt+F1进入命令行

2. 输入mkdir /data/fs

3. 挂载硬盘,使用下列命令

mount -t 硬盘格式 /dev/block/硬盘名称 /data/fs

硬盘格式为你虚拟机硬盘的格式,我这里是ext3 硬盘名称则是你虚拟机的

硬盘名称我这默认是sda1,表示第一个sata硬盘, linx下具体的硬盘命名规则请自行Google之

mount -t ext3 /dev/block/sda1 /data/fs

将硬盘挂在到 /data/fs文件夹上

4. vi /data/fs/grub/menu.lst 编辑启动菜单列表 (vi这个命令行编辑器怎么用请自行Google之)

5. 和刚才启动时一样,在第一个kernel那一行的末尾增加 vga=ask 后保存
6. 重启虚拟机,这时候你就会发现每次Android启动的时候就会询问分辨率了

4、默认分辨率仍然不能修改,只能是提供选择的界面,目前比较恰当的分辨率为320x480,因为我的是13寸的本,所以480x800有滚动条

解决:     修改menu.list时候,直接使用 vga=0x360 就好了,这样不会每次都询问

5、关于快捷键:

较常用的有:

  • Alt-F1 = 进入 console 模式
  • Alt-F7 = 回到 GUI 模式
  • Alt-F9 = 图形界面
  • Alt-F10 = 画面旋转 180 度
  • Alt-F10 = 画面旋转 180 度
  • Alt-F11 = 画面向左旋转 90 度
  • Alt-F12 = 画面向右旋转 90 度
  • Ctrl-P = 开启Android设定画面
  • "Windows 键"相当于 Android 的 Home 按钮。
  • "Esc" 相当于 Android 的 Back 按钮
  • F2 相当于 Android 的 Menu 按钮
  • F3 相当于 Android 的 Search 按钮
  • 右边的菜单键(win和ctrl中间的键) = Android菜单键

貌似上面的有些并不准确

我的笔记本上home键不管用,

6、每次都需要在virtualbox中禁止自动独占鼠标

7、关闭虚拟机后再开启每次连接eclipse时都需要重新reset adb:

在devices视图中选择重启adb:

virtualbox 安装 android 经验总结

限制:如果你的工程里面有使用so,那么请确保在Android.mk中修改接口类型为x86类型的,否则apk将无法在Android x86模拟器上运行。这也意味着如果你下载的apk里面有使用so的话,一般都无法再Android x86上运行的,因为应用商店中的apk的so都是arm类型的。所以一般如果是开发调试so的话,还是建议使用真机或者SDK的模拟器。

附:

menu.lst修改方法:

把"default=0"改成"default=2"就能默认启动windows(这个值是从零开始向下加一计数的),把"timeout=6"改成"timeout=5"就表示5秒内没按键就默认启动前面设定的那一个菜单。
default=2
timeout=5
root (hd0,14)
splashimage=/grub/android-x86.xpm.gz title Android-x86 4.0-RC1
kernel /android-4.0-RC1/kernel quiet root=/dev/ram0 androidboot.hardware=tegav2 acpi_sleep=s3_bios,s3_mode SRC=/android-4.0-RC1 SDCARD=/sd/sdcard.img
initrd /android-4.0-RC1/initrd.img title Android-x86 4.0-RC1 (Debug mode)
kernel /android-4.0-RC1/kernel root=/dev/ram0 androidboot.hardware=tegav2 acpi_sleep=s3_bios,s3_mode DEBUG=1 SRC=/android-4.0-RC1 SDCARD=/sd/sdcard.img
initrd /android-4.0-RC1/initrd.img title Windows
rootnoverify (hd0,0)
chainloader +1

参考了以下文章:

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

http://www.oschina.net/question/565065_92851

http://www.xmumu.com/android-x86

http://be-evil.org/create-an-x86-emulator-based-height-performance-android-develop-environment.html

http://blog.csdn.net/kevinkitty_love/article/details/7687562

http://blog.csdn.net/qq280948982/article/details/7075073

http://www.cnblogs.com/mixiyou/archive/2013/03/17/2965023.html

http://www.ibeifeng.com/goods.php?id=242