Android 模拟器一直以速度奇慢无比著称,基本慢到不可用,对比 iOS 开发用的模拟器,天壤之别,但是今天介绍的 Android模拟器 Genymotion,速度不亚于真机。

Genymotion 来自于 AndroVM 这个开源项目,基于 x86 和 VirtualBox,支持 OpenGL 加速,可以用于 Mac/Win/Linux。最近发布了新版,支持了 Android2.3/4.3,新增了拖拽安装 apk,移除了 Google 市场(后面提供解决方案)。另外增加了功能更丰富的付费版,个人可以继续使用免费版。

如何使用

简单介绍下如何获取和使用 Genymotion:

  1. 下载并安装 VirtualBox;

  2. 注册 Genymotion 帐号并登录;

  3. 根据自己的系统下载并安装 Genymotion,及 Eclipse 插件(可选);

然后就可以启动 Genymotion 程序了:

Android 最好用的模拟器 Genymotion_解决方案

主界面的 Settings 按钮,可以用来设置 VirtualBox 及 ADB 路径等信息。点击 Add 按钮,用 Genymotion 帐号登录后,会显示可用的 Android 虚拟设备:

Android 最好用的模拟器 Genymotion_Google_02

Android 最好用的模拟器 Genymotion_Android_03

找到想要的机型和版本,装好之后,回到主界面点 Play 按钮启动它,要安装应用,直接把 apk 文件拖进虚拟机就可以了:

Android 最好用的模拟器 Genymotion_解决方案_04

 

键盘 esc 是虚拟机的后退键,f1 是 menu 键。可以看到虽然 Genymotion 底层使用 VirtualBox,但是整个过程中,VirtualBox 一直是幕后英雄,不会露面。

另外,如果安装了 Genymotion 的 Eclipse 插件,以后就可以在 Eclipse 里管理和使用虚拟机了。如果在 Genymotion 里指定了 ADB 路径,调试 Android 应用也很方便。

Genymotion 虚拟机运行于本机,所以本机拥有的内网权限,虚拟机也有。

Google 市场 和 ARM 库

前面说过,新版 Genymotion 移除了 Google 市场。实际上,对 ARM library 的支持也一并移除了:

Both the “Google apps” and the “ARM library support” features are removed.

 

这样安装某些 App 时,会报「INSTALL_FAILED_CPU_ABI_INCOMPATIBLE」错误,比如微信。xda 论坛给出了一个解决方案,经验证确实好用。

安装 GApps(含 Google 市场)和 ARM Translation(提供 ARM 支持)的步骤(尽量参考英文原文):

 

  1. 下载  ARM Translation Installer v1.1

  2. 将下载回来的zip文件(不要解压) 直接拖放进去虚拟机里进行安装,完成后让虚拟机「关机」重开,不要直接关闭窗口

  3. 下载对应系统版本的 Google Apps,推荐下载 4.3,4.4可能有bug

  4. 同样将zip文件不要解压拖放到虚拟机进行安装,同样重启虚拟机

  5. 成功后 Google Play 市场和其他 Google App 都会出现了

  6. 这时你再安装微信或其他应用就不会再出现错误了

 

 

这样,Google Play 和其他 Google App 都有了;再安装微信等应用也不会报错了。

使用 Mac 的同学请注意

Genymotion 依赖的 Virtualbox 虚拟机,和 Mac 系统下另一个著名的虚拟机软件「Parallels Desktop」没办法同时使用。Parallels Desktop 官方说无解

No workaround is available. Please try not to use Parallels Desktop and Virtual Box at the same time

所以每次使用 Genymotion,必须先关掉 Parallels Desktop;同样,要使用 Parallels Desktop,也得关闭 Genymotion。

问题是:关闭 Genymotion,Virtualbox 某些进程并不会自动退出。所以我们要手动结束 Virtualbox 所有进程,才能正常运行 Parallels Desktop。我写了一个「Kill Virtualbox」的 Alfred Workflow 专门干这事,其实就一行:

update: 升级到 2.0.2 之后,直接关闭 Genymotion 可以同时退出所有 VirtualBox 进程,不需要上面那么复杂了。

 

最后跟大家说一下,不要在Android模拟器里面运行微信,因为存在封号危险:

两种模拟器都会被封,一般提示“被举报”或“严重违反相关协议”:
1、Virtualbox + Android x86、Genymotion和国内各种山寨版;
2、Bluestacks。