现在的位置: 首页 > 编程技术 > 安卓开发 > 正文

让Android模拟器飞一会

2015年11月12日 安卓开发 ⁄ 共 1804字 ⁄ 字号 评论 1 条 ⁄ 阅读 1035 次
文章目录

Android模拟器是公认的慢,而且不是一般的慢,即使在高性能的PC上,跟开发环境没关系,因为它就是慢。但是我们又必须使用模拟器,比如在测试Android不同版本的兼容性时,或者在测试不同屏幕尺寸的UI显示问题时,都是需要的。当然我们还是鼓励使用一个真机来调试和测试,模拟器无法取代真机。但是在测试兼容性时,我们还是要使用模拟器,因为即使是BAT也不可能把各种版本,各种屏幕的Android手机都买一个。

让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,推荐使用。

如果你有更好的秘密武器,也请与我分享。

参考

目前有 1 条留言    访客:1 条, 博主:0 条

  1. 匿名 2017年05月19日 下午1:10  Δ-9楼

    留言是种美德,写点什么… 😛 😛 😛 😛 😛 😛