Genymotion vs Android 模拟器

2017 年 10 月 24 日 Linux中国 译者:geekpi
一直以来有关于选择 android 模拟器或者 Genymotion 的争论,我看到很多讨论最后以赞成 Genymotion 而告终。我根据我周围最常见的情况收集了一些数据,基于此,我将连同 Genymotion 全面评估 android 模拟器。
-- Sumit Gupta


编译自 | https://www.plightofbyte.com/android/2017/09/03/genymotion-vs-android-emulator/ 
 作者 | Sumit Gupta
 译者 | geekpi

Android 模拟器是否改善到足以取代 Genymotion

一直以来有关于选择 android 模拟器或者 Genymotion 的争论,我看到很多讨论最后以赞成 Genymotion 而告终。我根据我周围最常见的情况收集了一些数据,基于此,我将连同 Genymotion 全面评估 android 模拟器。

结论剧透:配置正确时,Android 模拟器比 Genymotion 快。

使用带 Google API 的 x86(32位)镜像、3GB RAM、四核CPU。

◈ 哈,很高兴我们知道了最终结果
◈ 现在,让我们深入

免责声明:我已经测试了我看到的一般情况,即运行测试。所有的基准测试都是在 2015 年中期的 MacBook Pro 上完成的。无论何时我提及 Genymotion 指的都是 Genymotion Desktop。他们还有其他产品,如 Genymotion on Cloud&Genymotion on Demand,但这里没有考虑。我不是说 Genymotion 是不合适的,但运行测试比某些 Android 模拟器慢。

关于这个问题的一点背景,然后我们将转到具体内容上去。

过去:我有一些基准测试,继续下去。

很久以前,Android 模拟器是唯一的选择。但是它们太慢了,这是架构改变的原因。对于在 x86 机器上运行的 ARM 模拟器,你能期待什么?每个指令都必须从 ARM 转换为 x86 架构,这使得它的速度非常慢。

随之而来的是 Android 的 x86 镜像,随着它们摆脱了 ARM 到 x86 平台转化,速度更快了。现在,你可以在 x86 机器上运行 x86 Android 模拟器。

◈  问题解决了!!!
◈ 没有!

Android 模拟器仍然比人们想要的慢。随后出现了 Genymotion,这是一个在 virtual box 中运行的 Android 虚拟机。与在 qemu 上运行的普通老式 android 模拟器相比,它相当稳定和快速。

我们来看看今天的情况。

我在持续集成的基础设施上和我的开发机器上使用 Genymotion。我手头的任务是摆脱持续集成基础设施和开发机器上使用 Genymotion。

◈ 你问为什么?
◈ 授权费钱。

在快速看了一下以后,这似乎是一个愚蠢的举动,因为 Android 模拟器的速度很慢而且有 bug,它们看起来适得其反,但是当你深入的时候,你会发现 Android 模拟器是优越的。

我们的情况是对它们进行集成测试(主要是 espresso)。我们的应用程序中只有 1100 多个测试,Genymotion 需要大约 23 分钟才能运行所有测试。

在 Genymotion 中我们面临的另一些问题是:

◈ 有限的命令行工具( GMTool [1])。
◈ 由于内存问题,它们需要定期重新启动。这是一个手动任务,想象在配有许多机器的持续集成基础设施上进行这些会怎样。

进入 Android 模拟器

首先是尝试在它给你这么多的选择中设置一个,这会让你会觉得你在赛百味餐厅一样。最大的问题是 x86 或 x86_64 以及是否有 Google API。

我用这些组合做了一些研究和基准测试,这是我们所想到的。

鼓声……

◈ 比赛的获胜者是带 Google API 的 x86
◈ 但是如何胜利的?为什么?

嗯,我会告诉你每一个问题。

x86_64 比 x86 慢

◈ 你问慢多少。
◈ 28.2% 多!!!

使用 Google API 的模拟器更加稳定,没有它们容易崩溃。

这使我们得出结论:最好的是带 Google API 的x86。

在我们抛弃 Genymotion 开始使用模拟器之前。有下面几点重要的细节。

◈ 我使用的是带 Google API 的 Nexus 5 镜像。
◈ 我注意到,给模拟器较少的内存会造成了很多 Google API 崩溃。所以为模拟器设定了 3GB 的 RAM。
◈ 模拟器有四核。
◈ HAXM 安装在主机上。

基准测试的时候到了

Genymotion and Android Emulator Espresso Benchmark

Linpack

Geekbench 4

从基准测试上你可以看到除了 Geekbench4,Android 模拟器都击败了 Genymotion,我感觉更像是virtual box 击败了 qemu。

欢呼模拟器之王

我们现在有更快的测试执行时间、更好的命令行工具。最新的 Android 模拟器[2]创下的新的记录。更快的启动时间之类。

Goolgle 一直努力让

Android 模拟器变得更好

如果你没有在使用 Android 模拟器。我建议你重新试下,可以节省一些钱。

我尝试的另一个但是没有成功的方案是在 AWS 上运行 Android-x86[3] 镜像。我能够在 vSphere ESXi Hypervisor 中运行它,但不能在 AWS 或任何其他云平台上运行它。如果有人知道原因,请在下面评论。

PS:VMWare 现在可以在 AWS 上使用[4],在 AWS 上使用 Android-x86[3] 毕竟是有可能的。


作者简介:

嗨,我的名字是 Sumit Gupta。我是来自印度古尔冈的软件/应用/网页开发人员。我做这个是因为我喜欢技术,并且一直迷恋它。我已经工作了 3 年以上,但我还是有很多要学习。他们不是说如果你有知识,让别人点亮他们的蜡烛。

当在编译时,我阅读很多文章,或者听音乐。

如果你想联系,下面是我的社交信息和 email[5]


via: https://www.plightofbyte.com/android/2017/09/03/genymotion-vs-android-emulator/

作者:Sumit Gupta[7] 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

LCTT 译者
geekpi
共计翻译: 567 篇
贡献时间:1252 天

推荐文章

< 左右滑动查看相关文章 >

点击图片、输入文章 ID 或识别二维码直达



登录查看更多
0

相关内容

FPGA加速系统开发工具设计:综述与实践
专知会员服务
65+阅读 · 2020年6月24日
Gartner:2020年十大战略性技术趋势, 47页pdf
专知会员服务
76+阅读 · 2020年3月10日
【Google】利用AUTOML实现加速感知神经网络设计
专知会员服务
29+阅读 · 2020年3月5日
使用ONNX+TensorRT部署人脸检测和关键点250fps
极市平台
34+阅读 · 2019年10月22日
VS Code Remote发布!真·远程开发
开源中国
6+阅读 · 2019年5月3日
免费!Google Colab现已支持英伟达T4 GPU
新智元
5+阅读 · 2019年4月25日
Android P正式发布,你需要尽快做适配了
前端之巅
3+阅读 · 2018年8月7日
刚开始学编程?这几款小工具能让你事半功倍
免费云真机测试 | 让您的应用完美适配 Android Oreo
引力空间站
3+阅读 · 2018年2月2日
前端高性能计算(4):GPU加速计算
前端大全
7+阅读 · 2017年10月26日
PyTorch vs. TensorFlow之一个月用户体验
深度学习世界
3+阅读 · 2017年10月21日
Arxiv
6+阅读 · 2018年11月1日
VIP会员
相关资讯
使用ONNX+TensorRT部署人脸检测和关键点250fps
极市平台
34+阅读 · 2019年10月22日
VS Code Remote发布!真·远程开发
开源中国
6+阅读 · 2019年5月3日
免费!Google Colab现已支持英伟达T4 GPU
新智元
5+阅读 · 2019年4月25日
Android P正式发布,你需要尽快做适配了
前端之巅
3+阅读 · 2018年8月7日
刚开始学编程?这几款小工具能让你事半功倍
免费云真机测试 | 让您的应用完美适配 Android Oreo
引力空间站
3+阅读 · 2018年2月2日
前端高性能计算(4):GPU加速计算
前端大全
7+阅读 · 2017年10月26日
PyTorch vs. TensorFlow之一个月用户体验
深度学习世界
3+阅读 · 2017年10月21日
Top
微信扫码咨询专知VIP会员