安卓模拟器

摘要:
目前,市场上有多种Android模拟器软件,但只有两种主要类型:Bluebacks和Virutalbox。
作者:匿名用户
链接:https://www.zhihu.com/question/24815978/answer/130805145
来源:知乎
著作权归作者所有,转载请联系作者获得授权。

目前市面上安卓模拟器软件看着种类繁多,但其实只有两大流派:Bluestacks和Virutalbox。

Bluestacks的历史可以追溯到2011年,是最早在PC上实现流畅运行安卓系统的方案。Bluestacks的原理是把Android底层API接口翻译成Windows API,对PC硬件本身没有要求,在硬件兼容性方面有一定的优势。但Bluestacks需要翻译的Android接口数量巨大,很难面面俱到,而且存在软件翻译的开销,在性能和游戏兼容性方面欠佳。

Virtualbox是数据库巨头Oracle旗下的开源项目,通过在Windows内核底层直接插入驱动模块,创建一个完整虚拟的电脑环境运行安卓系统,加上CPU VT硬件加速,性能和兼容性都更好,但是对于电脑CPU有一定要求,超过五年以上的电脑使用起来比较吃力。

国内像靠谱助手、新浪手游助手等一大批手游助手类都是直接基于Bluestacks内核,因为Bluestacks没有公开源代码无法深度定制,只能简单的优化,再包装界面后上市。其他的像海马玩、逍遥安卓、夜神、ITools这类的产品都是基于Virtualbox,能力弱的(如海马玩、ITools)直接采用Oracle发布的Virtualbox商业版,能力强的(如逍遥安卓、夜神)则对Virtualbox源代码深度定制后重新编译来进一步提高性能和兼容性。

每个安卓模拟器有其各自特点,但都不能尽善尽美,用户在选择适合自己的安卓模拟器的时候,需要根据自己的实际情况对不同安卓模拟器进行选择:
1、BlueStacks
印度公司研发。对于国内部分流行游戏兼容性没有及时支持。受制于内核技术,虽然推出时间长,但是游戏兼容性,尤其是性能欠佳。

2、靠谱助手
国内最早(2013年开始)基于Bluestacks内核的安卓模拟器,优化了使用界面。但是靠谱缺少属于自己的内核技术,在兼容性和性能方面需要提升,产品不成熟。

3、海马玩
国内首款基于Oracle Virtualbox商业版的安卓模拟器,2014年底产品推出时与Bluestacks内核的安卓模拟器形成鲜明对比,版本与功能更新速度慢,弹出广告插件多,占用资源明显。

4、逍遥安卓
2015年中推出的基于Virtualbox深度定制的安卓模拟器。业界首创的一键多开是其亮点,国内独家支持安卓5.1.1。版本更新快,需求响应及时。模拟器性能和兼容性均不错,流畅、口碑好。

5、夜神模拟器
另一款基于Virtualbox定制的安卓模拟器,直接集成NOVA桌面是它的一大特色。但多开效率需进行提升。卡顿、延迟、偶发性系统奔溃、不流畅。
 
安卓模拟器是能在PC平台模拟安卓手机系统的模拟器软件。安卓模拟器能在电脑上模拟出安卓手机运行环境,安卓模拟器让你在电脑上也能体验安卓游戏和应用,在各大下载站都能够下载。
比较常用的安卓模拟器有:Android SDKBlueStacks,可在pc系统和苹果系统运行,著名的vmware虚拟机和Virtual Box虚拟机也可以模拟安卓系统,目前这些模拟器软件均可运行在微软公司的Windows操作系统平台。
Android SDK是google官方的安卓虚拟机,可用于开发,可以模拟出一个完整的安卓系统,并在电脑上进行任何手机上可行的操作,可以模拟出任何一款的安卓系统,并且拥有多种皮肤,屏幕样式可供选择,甚至可以像手机一样连接电脑,被手机助手检测到。但需要java虚拟机才能正常运行。
 

为什么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 

      这里要提一点,如果你要下最新的4.0,请下载android-x86-4.0-eeepc-20111209.iso  这个版本,其他的都有bug,开机后会不断的crash,注意是09

2.在VirtualBox上创建虚拟机

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

   创建虚拟硬盘

  image

选择第一就可 VDI

image

接下来:

image

创建好以后就ok了

创建好以后还需要一些配置:

image

如果希望听到声音,则这样设置:

image

关键的网卡设置:

image

设置好以后就可以点启动进行android的安装了

image 

选择install,建议先选第一个进入android系统,如果进去不报错再安装,这样保险一点

image

Create/Modify partitions

image

选择 NEW 来建立磁盘

image

属性请选择Primary

image

默认即可

image

选择Bootable

image

image

只管打yes就行,虽然s看不到

image

退出以后就能看到你刚才分的区了,然后把android装到这个区里就可以了

image

image

image

一路yes

image

选择sd分配sd

image

然后重启就行了

image

在设置里把启动顺序调整一下,如果不想费劲,把光驱里的iso路径去了就可以了,因为默认是先从光盘加载的

搞定这些直接点击 开始

image

选择进入系统

image

这样你的鼠标就能进入到模拟器中了

模拟器和你真机鼠标切换的快捷键在这里设置

image

这里我选择了左 ctrl

这样就ok了

但是有朋友可能要问,如果我调试程序,怎么让eclipse自动打包到我们的x86虚拟机上呢?

进入android系统的所有应用里

image

image

有了ip就好办了,很多人是不是和我一样想到了adb connect

image

done,搞定,进到eclipse的DDM里面

image

这样就可以开发了,速度如飞啊,无论打包还是运行!

免责声明:文章转载自《安卓模拟器》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇ajax和json毕业设计 python opencv实现车牌识别 预处理下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

tmpfs详解

一,tmpfs介绍 1. tmpfs是一种虚拟内存文件系统,正如这个定义它最大的特点就是它的存储空间在VM里面(什么是VM?后面介绍) 2. VM是由linux内核里面的vm子系统管理的东西,现在大多数操作系统都采用了虚拟内存管理机制   VM介绍 1.linux下面VM(virtual memory)的大小由RM(Real Memory)和swap组...

VMWare虚拟机网络的三种工作模式

VMWare提供了三种工作模式:   1.bridged(桥接模式)   在这种模式下,VMWare虚拟出来的操作系统就像是局域网中的一台独立的主机,它可以访问网内任何一台机器。在桥接模式下,需要手工为虚拟系统配置IP地址、子网掩码,而且还要和宿主机器处于同一网段,这样虚拟系统才能和宿主机器进行通信。使用桥接模式的虚拟系统和宿主机器的关系,就像连接在同一个...

java内存区域

  java虚拟机里内存都放了些啥东东呢?看图:   从上图我们可以看到,有:程序计数器(Program Counter Register)、Java栈(VM Stack)、本地方法栈(Native Method Stack)、方法区(Method Area)、堆(Heap)。其中标黄的是线程私有的内存区域,标蓝的是公共内存区域。那它们都是干啥的呢?  ...

ovn-architecture 摘要

OVN架构图如下所示: 1、OVN Southbound Database由以下三种数据构成: Physical Network(PN)table用于确定如何到达hypervisor以及其他node Logical Network(LN)table用"logical datapath flows"描述的逻辑网络 Binding table用于将逻辑网络...

浅谈scrollTop属性

最近心血来潮,突然想到鼠标滚动改变背景的效果,思路很明确,通过获取鼠标滚动条距离顶端的位置改变背景。实际操作中却遇到不少问题。首先,便是针对鼠标滚动对象的选取,其次,百度了之后发现srollTop这个属性在不同的浏览器中存在一定的兼容性的问题:document.documentElement.scrollTop(火狐),document.body.scro...

虚拟机WMware NAT方式共享物理主机IP地址上网设置方式

物理主机:通常也叫作宿主机,是安装 VMware 软件的主机。 虚拟机:是运行在 VMware 软件上的主机。 虚拟机网卡认识: VMnet0:虚拟机桥接模式的网卡。VMnet1:虚拟机仅主机模式的网卡。VMnet8:虚拟机 NAT 模式的网卡,是VMware为物理主机分配的虚拟网卡,物理主机通过这块 VMnet8 网卡与虚拟机操作系统进行通信。 如下图...