不知道有多少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或虚拟机上流畅的运行了。
1.下载Android-x86系统镜像文件

首先到http://www.android-x86.org/download下载android-x86-2.2-generic.iso,镜像文件大约85MB

2.在VMware上创建虚拟机

过程~照着这样做就行,我也不全懂——我是小白(里面长的英语就不拼了,我也懒从这里开始,选择最后一项

选择第一项(创建磁盘分区)

进入这个界面,选择“NEW”

选择“Primary(主分区)”

点选“Bootable”

之后点选“Write”,在出现的“(yes or no)”提示后输入yes,回车

完成后点“Quit”进入如下界面

回车之后  分区格式(玩linux的都知道),这里我选了ext3

接下来一路选“Yes”(就这样做吧,有一个说是需要更大空间神马的,能玩虚拟机的电脑怎么说也不在乎那么点空间吧)
到这里停~~创建SD卡
 
在这里我小囧了下:之前本小白创建SD卡无视后面的(max 2047),结果···

安装结束后,重启进入Android这里,第二项比第一项的分辨率高,其他没啥区别貌似;第三项没试过···

启动界面

键盘锁,乃懂得

“桌面”

先把语言改成母语吧:解锁后点那个 四点方阵 进入菜单,Settings

找到 Language & keyboard(留意上面那个SD Card*****),Select Language,找到“中文(简体)”      倒数第二个
 
接着退出来,上面那个“SD Card*****”已经变成了“SD卡和手机内存”
【SD卡有时候不能自动安装,需要进入“SD卡和手机内存”选项,安装即可】

改下其他部分设置
设置里的  应用程序  

把“未知来源”的勾打亮

另外,也推荐修改这个设置
显示  中,把“自动旋转屏幕”给灭了【否则在运行部分程序时得把电脑竖着放了

上网页下个Android版的QQ~~~

正在下载
 
拖拽那个  任务栏(暂且这么叫吧),点击安装就行了~~

好吧,我承认把QQ正着放有点怪

4.自定义虚拟机分辨率

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

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

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

C:\Documents and Settings\Administrator\VirtualBox VMs\Android-x86

注意:

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

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

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

"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" setextradata "Android-x86" "CustomVideoMode1" "480x800x16"

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

"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe"

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

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

Android-x86

这个是虚拟机的名称

480x800x16

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

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

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

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

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

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

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

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

回车后Android就会按照你设定的分辨率来启动了,下图是以480x800分辨率启动的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键中间

1.用鼠标点住某个程序的图标不放:
(在菜单中)相当于要创建桌面快捷方式
(在桌面)可移动至另一桌面或拖入垃圾桶

2.菜单、网页中,鼠标左键相当于前进,右键后退
键盘 回车前进,ESC后退

3.关机(我的本本上可用,其他的不知道):F4、F6、End

4.长按输入框可切换输入法

5.Android设备一般会有Home,Menu和Back三个标准按钮,如果没有,就要这样模拟:

(1)按住上方状态栏的右面一会儿后,会提示打开状态栏模拟按钮的功能:打开后,单击状态栏表示Home;状态栏上按鼠标键并从左向右划动表示Menu;状态栏上按鼠标键并从右向左划动表示Back。同样方法还会关闭状态栏模拟功能。

(2)单击鼠标右键也表示Back;按下键盘上的ESC键或Windows键也表示Home;按下键盘上的上下文键(一般在Alt和Ctrl中间)也表示Menu。

(3)Android里只要程序不显示就表示关闭了程序,对于有后台功能的程序,需要从“Dev Tools - Running Process”里关闭(一般不使用)。

6如果要上下滚动,可以拖动一个空白处,或使用鼠标滚轮。

7.如果要关机,按F6,这时会提示。

8.Alt-F1是切换到Linux命令行,Alt-F7是切换回图形模式。不要使用“reboot -p”关机(没有按Java程序的流程运行)。

用Android-X86和VMware打造高性能Android开发环境相关推荐

  1. Android学习笔记之(一)开发环境搭建

    Android学习笔记之(一)开发环境搭建 zouxy09@qq.com http://blog.csdn.net/zouxy09 至于说Android是什么之类的俺就不啰嗦了,因为它离我们太近了.直 ...

  2. mac搭建python开发环境_Mac打造python2 python3开发环境

    最新版的MacOS Sierra默认带的python环境仍然为2.7.10,本文将介绍使用Brew安装python3.5并做简单的配置,打造python2,python3共存的开发环境 直接尝试bre ...

  3. notepad 配置c语言开发环境,用notepad++打造c/c++开发环境

    用notepad++打造c/c++开发环境 (2014-01-07 11:21:18) 标签: c/c notepad 开发 it 本文介绍如何使用开源软件notepad++,来打造c/c++开发环境 ...

  4. Android 攻城狮的进击 1 开发环境搭建HelloWorld.apk

    总览:     Java简介     Java相关常识      Android简介      Android相关常识      开发环境搭建      HelloWorld.apk      参考文 ...

  5. 【VMware中搭建iOS开发环境的引导工具】

    最近临时接手iOS开发,在VMware 9.0中搭建了Xcode + iPhone SDK开发环境,本来打算下笔一记,但这个环境的搭建教程网上一抓一大把,bill就不再赘述了.但是bill在引导工具的 ...

  6. macbook pro python开发_Mac打造python2 python3开发环境

    最新版的MacOS Sierra默认带的python环境仍然为2.7.10,本文将介绍使用Brew安装python3.5并做简单的配置,打造python2,python3共存的开发环境 直接尝试bre ...

  7. vagrant打造自己的开发环境~~我也来一发

    缘由: 在网上看到斌哥,爽神都写了关于vagrant的博客,都在说很强大,所以很好奇这玩意怎么个强大,然后也就自己来一发玩玩看看. 真实缘由: 说实话是电脑配置太低,win7系统,3G内存,08年的品 ...

  8. VMware安装Debian9及开发环境配置

    序 需要用到一个搭载armv7架构A7内核的Linux设备,装的是Debian系统,为便于兼容该设备故用VMware安装一个Debian9虚拟机,整理总结了网上一些信息以供参考. 目录 一.安装Deb ...

  9. android x86怎么装驱动,mt65xx android phone驱动怎么安装【图文教程】

    最近,小编在帮朋友安装手机驱动的时候,遍寻各大网络论坛,很多坛友都在推荐 mt65xx android phone驱动 这款手机驱动,不仅好用,而且最关键的一点就是免费,完全免费!所以,小编赶紧推荐给 ...

最新文章

  1. 汇编寄存器(内存访问)基础知识之三---mov指令
  2. 寻找网页设计灵感的200佳网站推荐(系列二)
  3. 8个可以提高数据科学工作效率、节省宝贵时间的Python库
  4. jpa遇到的 org.hibernate.PersistentObjectException: detached entity passed to persist异常
  5. DPDK — 数据平台优化技术
  6. 关于Scala递归返回参数的问题
  7. jsp页面点击显示影藏div的一个方法
  8. 很多人都忽视了账号基建重要性
  9. HDU 4864 (2014 Multi-University Training Contest 1 )
  10. 我中的第一标:4000人中脱颖而出的威客
  11. Clover 引导 Windows 及 Linux 双系统
  12. 机器人行业毕业相关小结
  13. 甲骨文裁员后应该怎样发展后来的路?
  14. PMP备考之路 - 汪博士第六章(项目进度管理)
  15. 有机合成化学类毕业论文文献(推荐10篇)
  16. Leetcode 441. 排列硬币(Python)
  17. 单纯版九九乘法口诀表
  18. Android性能优化--IO 优化( IO基本知识:应用程序、文件系统和磁盘,三种IO方式及适用场景,多线程阻塞IO和NIO)
  19. linux命令:xxd读取二进制文件
  20. 计算机网络之网络应用--Email应用

热门文章

  1. CCNP---重发布
  2. Valheim英灵神殿服务器端口2456-2457-2458开启
  3. DW3000芯片驱动API介绍
  4. Azure虚拟机教程
  5. mplayer-php,Mplayer使用及快捷键
  6. 个人turtle小作品美队之盾(captain american's shield)
  7. Disk Xray for Mac系统清理软件
  8. 平方矩阵(java)
  9. 现代数学发展的大趋势
  10. FBX导入UE4模型报错:无法创建,多边形退化