Android模拟器是公认的慢,而且不是一般的慢,即使在高性能的PC上,跟开发环境没关系,因为它就是慢。但是我们又必须使用模拟器,比如在测试Android不同版本的兼容性时,或者在测试不同屏幕尺寸的UI显示问题时,都是需要的。当然我们还是鼓励使用一个真机来调试和测试,模拟器无法取代真机。但是在测试兼容性时,我们还是要使用模拟器,因为即使是BAT也不可能把各种版本,各种屏幕的Android手机都买一个。
为啥模拟器会这么慢
关键就是在模拟这二个字。PC啊,我们所使用的开发环境的CPU都是x86架构的,而手机呢一般都是ARM架构,这就产生问题了,这个手机的系统无法像PC上面的一个应用程序那样直接运行在PC里,所以就需要一个虚拟的ARM机器。Android模拟器是基于QEMU的,QEMU可以模拟ARM指令,另外,存储,等等所有模拟器的硬件,都是由软件实现的。总之,为了能让PC上跑起来ARM,就慢了很多。
详细的可以看这篇文章
我们可能不关心它为啥慢,我们要关心的是如何能让它跑的更快一些!
使用x86架构
既然它慢是因为必须在x86上面模拟ARM,那么让它快起来第一个方法就是直接使用x86架构,这样子的话,就能够直接使用开发环境的CPU了,性能肯定会大幅的提升,正如这篇文章所说。
配置方法也不难,主要是:
- 安装Intel的加速驱动HAXM
- 下载和使用x86版本的Android System images
使用起来并不难,只是可能会遇到坑,借助Google和百度都能解决。唯一需要注意的是,Intel的HAEM对硬件的配置要求比较苛克,要求CPU必须支持虚拟化VT,具体的可以参考官方和Google进行解决。
使用Genymotion
Genymotion是一个全功能的Android模拟器,它不但能测试应用,还有同步等功能,在PC上面跑的非常快。先去注册成为它的用户,然后就可以下载了。它的安装,也比较方便,直接看官方的文档就可以了。
快速功能列表
- 支持主流的三种平台Windows, Mac OS X和Linux
- 需要注册成为它的用户才可下载
- 高级功能的版本需要付费
- 不能安装在虚拟机中,因为它要使用硬件加速,而且本身也要运行在虚拟机(VMWare, VirtualBox)之中,所以,它是不能安装在已经是虚拟中的系统中的
安装与使用方法
- Windows 下载安装文件后直接安装即可,会把所有的依赖(Virtualbox)都装上
- Linux(Ubuntu 64)
- 下载genymotion-[version]_[arch].bin
- chmod +x genymotion-[version]_[arch].bin
- ./genymotion-[version]_[arch].bin(注意一下子安装的路径,是放在$PWD/genymotion/下面
- 安装Virtualbox,如果还没安装的话sudo apt-get install virtualbox
- 启动cd genymotion; ./genymotion。登录帐户然后选择设备进行下载,之后就可以使用了,都是GUI页面,有问题可以Google。
使用Andy the Android Emulator
貌似官方网站不能下载。
快速功能列表
- 支持Windows和Mac
- 支持开发所需要的所有功能
- 支持同步
使用Blue Stacks App Player
功能列表
- 仅支持Windows
使用Manymo
这个网站经常打不开,因为访问量太大。
它不是运行在本地的,它是一个运行在浏览器中的Android模拟器,注册用户以后,就可以上传应用,然后在浏览器中运行Android应用了,听起很酷,但是这个并不适合开发者用。这个适合测试人员用。或者开发完成后做一些兼容性测试之类的场景。
快速功能列表
- 运行在浏览器之中
- 适合测试,而不是实时的调试
- 缺点就是网站经常打不开
总结与推荐
其实,所有的加速的模拟器,也都是以x86为基础建立起来的,只不过他们做了更多的封装,让它的安装和使用更加的方便而已。
最出名的,也是最方便好用当属Genymotion,推荐使用。
如果你有更好的秘密武器,也请与我分享。