安卓模拟器详解程序员

作者:匿名用户

链接: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 SDK
BlueStacks,可在
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

 

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

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/aiops/7154.html

(0)
上一篇 2021年7月17日 08:42
下一篇 2021年7月17日 08:42

相关推荐

发表回复

登录后才能评论