用Android-X86和VirtualBox打造高性能Android开发环境

此文仅供参考,genymotion更加简单便捷。

http://www.genymotion.cn/

附上eclipse插件地址http://plugins.genymotion.com/eclipse

知道有多少Android开发着对Android虚拟机的那悲剧的性能有意见,反正我的看法是:那速度实在是太坑爹了! 为什么Android虚拟机比iOS和WP7的虚拟机要慢很多呢?

原因如下:

1. Android 模拟器模拟的是 ARM 的体系结构(arm-eabi),而 iOS 和 WP7 的模拟器的目标体系结构都是 x86 的,另外 iOS 的模拟器中运行的 App 也是编译为 x86 的。这样一来 Android 模拟器需要做一些额外的二进制翻译工作。

2. Android 模拟器用的是 QEMU 的全系统模式(full system),也就说它模拟时需要启动整个 GUEST 系统,初始化各种模拟设备。相反的,iOS 和 WP7 的模拟器只是 user-mode 的模拟。

3. 在 Android 模拟器之中还需要跑一个 Dalvik VM,用以执行 Android 应用的 bytecodes。

综上所述,慢的一个主要原因就是虚拟机不是跑在x86上而是模拟的ARM,有没有办法弄个x86的Android呢? 答案是当然有———开源项目Android-x86,这个牛B的开源项目将Android移植到了x86平台,系统运行的时候不再需要模拟成ARM,这样就能直接将Android装在PC或虚拟机上流畅的运行了。

万事俱备,只欠东风了,下面我就来讲一下我使用Android-X86和VirtualBox打造手机开发模拟器的整个流程

1.下载Android-x86系统镜像文件 首先到http://www.android-x86.org/download下载,如果登陆不进去的话,可以按照这个格式百度android-x86-4.4,最后4.4是版本号,可以搜出搬运过来的,这里给出一个android-x86-4.4-RC2的镜像连接 下载

2.在VirtualBox上创建虚拟机 操作系统选择Linux,版本选择Linux 2.6,内存1024,硬盘8G用来开发足够 虚拟机创建好之后,还需要修改一些配置 首先是调整网卡,连接方式建议选择bridged adapter这样虚拟机在局域网中有独立IP可以方便访问,然后控制芯片要选择为PCnet-PCI II,否则Android-x86无法识别网卡

vbox3

如果你想有声音的话需要在声音设置面板将控制芯片设置为soundblaser 16 把虚拟机的光驱设置为我们刚才下载的Android-x86 iso之后,启动虚拟机 3.安装Android-x86到虚拟机 虚拟机启动后,你可以看到下面的画面

vbox5

第一和第二的项目是让你不用安装体验高、中DPI的Android-x86,有兴趣的话可以先运行体验一下x86的速度 我们要安装Android到硬盘,选择最后一项后回车 Installation – Install Android-x86 to harddisk 我们选择Create/Modify partitions来创建分区 首先我们选择new来创建新分区 选择Primary创建主分区 分区大小采用默认大小即可 然后我们设定该分区可以引导(选中Bootable后回车),这是分区的flag会显示boot,然后我们再选择write将修改写入到硬盘(选择write之后还需要输入yes来确认) 分区完毕后再选择quit即可退出,退出后,我们就能看到刚才分配的新分区被识别出来了 按下回车选择该分区,这时会询问采用什么分区格式格式化分区,建议选择ext3 选择好格式后系统会再跟你确认一遍,输入yes安装就会开始了 安装中途会询问你是否安装Grub,这里一定要选择YES,因为我们后需要Grub来自定义启动Android 安装Grub的时候会询问你是否将/system目录安装为读写模式(设为读写可以更方便的debug,但是会占用更多的空间和安装时间),选择yes 回车后安装就会开始了 安装结束后,会弹出一个菜单 三个选项分别是(貌似在4.0以后就没有虚拟sd卡了) 运行Android 创建一个虚拟SD卡 重启   这里最好选择重启。 1 注意使用在Android系统中使用鼠标的时候需要设置Virtual Box禁止自动鼠标独占,否则鼠标在Android中无法正常使用

vbox2

2  如果虚拟机锁屏了,可以按下键盘上右边的Ctrl和Alt之间的那个菜单键,安卓和键盘的对应键为 虚拟机中主页、返回、关机、菜单对应的键盘按键 Home键 -> Win键 返回键 -> ESC键 挂机键 -> alt+F4 菜单键 -> 键盘菜单键,一般在右边win键和ctrl键中间 3 网络设置 安装完毕后一般是上不了网的,在vbox里面设置的时候,注意勾选网络那里最后一个连接网线。 在虚拟机里打开终端命令窗口,输入ip a,可以看到eth0(最后是数字0),的状态可用,但是没有分配。有两种方法: 先输入su,并在弹出的权限认证框中选择确定, 1,自动分配,输入dhcpcd eth0 2,手动指定 输入 ifconfig eth0 192.168.1.200 netmask 255.255.255.0 up route add defult gw 192.168.1.1 dev eth0 setprop net.dns1 114.114.114.114 结束之后打开浏览器看看是不是已经连接上互联网了。 4.与eclipse的连接 首先在虚拟机的终端里获取ip上一步有。 在eclipse中设置

vbox2

vboxEclipse

  再开启devices窗口

 

eclipse2

vbox10  

eclipse3

eclipse4

文章来源于网络,问题的解决也综合于网络,我已经测试过了,可以使用。 分辨率的设置开新的文章。 有问题请在文章下面留言。

文章若未注明转载皆为原创,如需转载请注明本文原文地址http://www.findspace.name/easycoding/316,文章markdown格式源码现已开放,欢迎转载。文章源码地址:https://github.com/FindHao/FindSpace.name Star

分享到:

Find

Find

新浪微博(FindSpace博客):QQ群:不安分的Coder(375670127) 不安分的Coder

You may also like...

  1. Pingback: 自定义vbox上的Android x86的分辨率 | FindSpace