【图解】Android-X86 + VirtualBox 搭建高性能Android开发环境

不知道有多少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系统镜像文件

首先下载android-x86-2.2-generic.iso(直接点击该链接),镜像文件大约82MB

2.在VirtualBox上创建虚拟机

操作系统选择Linux,版本选择Linux 2.6

 

内存建议为512MB

 

硬盘默认8GB即可,因为是开发用,8GB绰绰有余了

虚拟机创建好之后,还需要修改一些配置

首先是调整网卡,连接方式建议选择bridged adapter这样虚拟机在局域网中有独立IP可以方便访问,然后控制芯片要选择为PCnet-PCI II,否则Android-x86无法识别网卡

 

如果你想有声音的话需要在声音设置面板将控制芯片设置为soundblaser 16

 

把虚拟机的光驱设置为我们刚才下载的Android-x86 iso之后,启动虚拟机

计算环境">

 

思想之地原创文章,谢绝转载

3.安装Android-x86到虚拟机

虚拟机启动后,你可以看到下面的画面

 

第一和第二的项目是让你不用安装体验高、中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

 

回车后安装就会开始了

 

安装结束后,会弹出一个菜单

三个选项分别是

运行Android

创建一个虚拟SD卡

重启

 

因为我们开发肯定会用到SD卡,所以在此我们创建一个虚拟SD卡

创建时会询问SD卡的大小,根据你的需要设定即可,我在此设定的是128MB

 

回车后安装程序就会开始初始化sd卡了

格式完毕后,会提示重启,此时退出虚拟机光驱中的系统盘后重启,重启后就能进入Android系统了

注意使用在Android系统中使用鼠标的时候需要设置Virtual Box禁止自动鼠标独占,否则鼠标在Android中无法正常使用

 

Android-x86运行截图:

 

思想之地原创文章,谢绝转载

4.自定义虚拟机分辨率

我们在开发时肯定需要测试不同的分辨率,那么如何自定义Android虚拟机的分辨率呢?

首先我们需要从Virtual Box的设定入手

打开cmd,进入Virtual Box的下你创建的虚拟机的目录,我创建的虚拟机叫Android-x86,我的账户是Administrator,在我Windows XP上的路径是

C:Documents and SettingsAdministratorVirtualBox VMsAndroid-x86

注意:

1.在不同操作系统下路径会有一些不同,请根据操作系统的实际情况寻找,原则上都是在你当前用户的个人文件夹里

2.Android-x86是我创建的虚拟机的名称,如果你的和我的不同,请修改为你创建的虚拟机的名称

在这里我们需要使用VirtualBox提供的命令行工具来给你的虚拟机添加一个自定义分辨率,例如我想添加一个现在流行的手机屏幕分辨率 480×800,那么我们输入的命令如下

“C:Program FilesOracleVirtualBoxVBoxManage.exe” setextradata “Android-x86” “CustomVideoMode1″ “480x800x16“

上面的命令中,加粗的部分是要根据你自己电脑上的情况进行修改的,相关解释如下:

“C:Program FilesOracleVirtualBoxVBoxManage.exe”

是Virtual Box命令行工具VBoxManage.exe的完整路径,请根据你电脑上安装的VirtualBox的实际路径修改

注意:如果路径中含有空格请使用双引号将整个路径包起来

Android-x86

这个是虚拟机的名称

480x800x16

这个是自定义的分辨率,请根据自己的需要修改,后面的16指的是16位颜色,请勿修改

如果你想增加更多的分辨率,请修改参数后多次运行该命令即可

 

修改完毕之后,启动虚拟机,在Android的启动画面选中选项后按两次e键编辑内核启动参数,增加一个参数 vga=ask,具体流程如下

启动画面按e键

 

进入新画面后再按一次e键

 

这时进入内核参数编辑状态,增加参数 vga=ask

 

编辑完毕后按回车保存修改结果,这时会回到上一个页面,此时按下b键启动

此时系统会提示你按回车进入分辨率选择界面,我们按回车继续

 

进入页面之后,你可以看到所有系统支持的分辨率,这时请寻找你刚才设定的分辨率,在下图中,可以找到在先前设定的 480×800的分辨率,注意其前面的16进制代码360,如果想以该分辨率启动虚拟机,我们就输入360再回车即可

 

回车后Android就会按照你设定的分辨率来启动了,下图是以480×800分辨率启动的Android-x86虚拟机截图

 

注意:

如果你需要系统采用你指定的分辨率启动,需要在每次Android虚拟机启动的时候执行上面步骤的操作来修改内核参数启动Android

如果你想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.list 编辑启动菜单列表 (vi这个命令行编辑器怎么用请自行Google之)

5. 和刚才启动时一样,在第一个kernel那一行的末尾增加 vga=ask 后保存

6. 重启虚拟机,这时候你就会发现每次Android启动的时候就会询问分辨率了

5.使用eclipse ADT在虚拟机上远程调试开发

现在虚拟机已经配置完成,下面来讲解如何使用eclipse来在上面运行和调试Android应用程序

在前面设定虚拟机的时候我把虚拟机的网卡设置成了bridged adapter,这样虚拟机在局域网中相当于一台独立电脑,你可以给它设置一个ip或者讲其网卡设置为dhcp状态来自动获取ip,我下面只讲解一下在 dhcp状态下如何查看android虚拟机ip的方法:

进入android虚拟机,按alt+F1进入命令,输入netcfg命令来查看网络状态,参考界面如下

 

其中eth0就是当前的网卡,后面的ip地址就是通过dhcp获得的ip地址

弄清楚之后再按alt+F7返回图形界面

此时我们打开eclipse,进入android开发插件的设定界面,选择ddms,勾选 Use ado host, 并在ADT host value 一栏填写虚拟机的ip地址,具体界面请参看下图

 

选择ok保存后,在ddms界面的device菜单上选择重启adb服务,重启后,就能看到ddms连接上虚拟机了

 

接下来就能和平常一样在虚拟上运行和测试你的Android程序了,enjoy~

最后总结一下这个环境的优缺点:

优点:

1.高速,相比Android SDK的虚拟机,无论是启动还是运行,本虚拟机要快上很多很多,让你可以流畅的运行测试你的Android应用,当然,也能舒服的在电脑上体验到Android系统:)

2.可以模拟平板电脑的环境

缺点:

1.硬件支持还是悲剧,像打电话,短信,重力感应,GPS摄像头什么的你还是得去弄台真机器调试(不过这些东西本来就不是模拟器能做的)

另外补充一下虚拟机中主页、返回、关机、菜单对应的键盘按键

Home键 -> Win键

返回键 -> ESC键

挂机键 -> alt+F4

菜单键 -> 键盘菜单键,一般在右边win键和ctrl键中间

时间: 2024-10-26 05:34:34

【图解】Android-X86 + VirtualBox 搭建高性能Android开发环境的相关文章

在Mac OSX中搭建Python集成开发环境图解

本篇博客分享如何在Mac OSX系统中搭建Python集成开发环境 首先到Python官网下载python,python官网链接 这里选择下载Python2.7.9版本,下载完成之后安装: 安装成功,打开终端: 下面下载python开发的ide,http://www.jetbrains.com/pycharm/ 下载专业版,有30天的免费试用,足够我们学习python了. 安装,将Pycharm拖动到mac应用程序中 创建第一个Python项目: 运行python文件 来源:51CTO

《React Native移动开发实战》一一1.3 搭建React Native开发环境

1.3 搭建React Native开发环境 "磨刀不误砍柴工",在正式开发React Native应用之前,需要先搭建好React Native的开发环境.搭建React Native开发环境有以下几个主要步骤. 原生开发工具:iOS开发使用Xcode,Android开发使用Android Studio and SDK Tools. Node.js(https://nodejs.org/):React Native是借助Node.js,即JavaScript运行时来创建JavaScr

《Cocos2D-x权威指南》——第2章 搭建跨平台的开发环境

第2章 搭建跨平台的开发环境 所谓"工欲善其事,必先利其器".学习Cocos2D-x的开发技巧,首先从搭建跨平台的开发环境开始. 目前,Cocos2D-x 2.0以上版本支持Win32.Android.iOS三个平台的开发,所以本章分别介绍在这三个环境下的开发环境搭建.一个完整的开发环境包括开发.编译.链接.运行和调试等几部分,所以需要相应的开发环境,比如Win32环境下的VS(Visual Studio,微软公司集成开发环境),Android的开发环境Eclipse和Android

在本地搭建一个 LEMP 开发环境的例子

你想在本地开发 PHP 网站应用,学习 PHP 语言,或者学习使用 SQL 语言操作数据库,你需要准备一个开发环境.请放弃 WAMP,MAMP,XAMPP 或者类似的开发环境,没有任何好处.现在唯一推荐使用 Vagrant + Virtualbox 的方法在本地搭建一个 LEMP 开发环境. LEMP 是运行 PHP 应用的环境,L 是 Linux ,比如 CentOS,Ubuntu 等等. E 是 NGINX ,它是一款 Web 服务器. M 表示 Mariadb 或者 MySQL,是数据服务

SharePoint 2013如何搭建app本地开发环境

使用SharePoint App,如果要通过应用程序目录分发 SharePoint 相关应用程序,如具有完全控制权限的 SharePoint 相关应用程序(无法部署到 Office 365 网站),则将需要使用本地计算机上完整安装的SharePoint 2013.我们在本文中提供了用于设置SharePoint 2013 的本地安装以及开始开发SharePoint 相关应用程序的步骤. 一.配置前准备 1. 请确定已经安装好SharePoint 2013,如若未安装,请参考附后的安装教程. 2.确

Eclipse和PyDev搭建完美Python开发环境(Windows篇)(转)

  摘要:本文讲解了用Eclipse和PyDev搭建Python的开发环境. 十一长假在家闲着没事儿,准备花点时间学习一下Python. 今儿花了一个下午搭建Python的开发环境,不禁感叹----开源的东西就是麻烦啊··· 唉,可怜我们这些被微软宠坏了的开发人员··· 为什么不用别的IDE呢? IDLE是小打小闹用的,那个WingIDE是要钱的,而且用不惯.Eclipse+PyDev插件是最主流的Python开发环境了. 1.准备工作: 下载32位的JDK6 Java的开发包  我也不想装这玩

zend-MAC 下用MAMP搭建的PHP开发环境安装ZendGuardLoader不成功,请大神帮忙?

问题描述 MAC 下用MAMP搭建的PHP开发环境安装ZendGuardLoader不成功,请大神帮忙? 网上的搜的教程统统试过了就是不成功. zend_extension="/Applications/MAMP/bin/php/php-5.3.x/ZendGuardLoader.so" zend_loader.enable=1 zend_loader.disable_licensing=0 zend_loader.obfuscation_level_support=3 感觉这也写的没

Windows 7安装Eclipse 3.7搭建C/C++开发环境

原文:http://blog.csdn.net/dj0379/article/details/6940999 Windows 7安装Eclipse 3.7搭建C/C++开发环境 (2011-07-28 11:27:48)   操作系统: Windows 7 SP1 软件: JRE 1.6.0_26-b03 eclipse-SDK-3.7-win32 cdt-master-8.0.0 mingw-get-inst-20110530   1. 安装JRE 由于Eclipse本身是用Java开发而成,

SharePoint 2013 搭建app本地开发环境

原文:SharePoint 2013 搭建app本地开发环境 使用SharePoint App,如果要通过应用程序目录分发 SharePoint 相关应用程序,如具有完全控制权限的 SharePoint 相关应用程序(无法部署到 Office 365 网站),则将需要使用本地计算机上完整安装的SharePoint 2013.我们在本文中提供了用于设置SharePoint 2013 的本地安装以及开始开发SharePoint 相关应用程序的步骤. 一.配置前准备 1. 请确定已经安装好ShareP