Genymotion vs Android 模擬器

solution發表於2021-09-09

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 中我們面臨的另一些問題是:

  • 有限的命令列工具()。

  • 由於記憶體問題,它們需要定期重新啟動。這是一個手動任務,想象在配有許多機器的持續整合基礎設施上進行這些會怎樣。

進入 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 安裝在主機上。

基準測試的時候到了

圖片描述

圖片描述

圖片描述

從基準測試上你可以看到除了 Geekbench4,Android 模擬器都擊敗了 Genymotion,我感覺更像是virtual box 擊敗了 qemu。

歡呼模擬器之王

我們現在有更快的測試執行時間、更好的命令列工具。最新的 創下的新的記錄。更快的啟動時間之類。

Goolgle 一直努力讓

Android 模擬器變得更好

如果你沒有在使用 Android 模擬器。我建議你重新試下,可以節省一些錢。

我嘗試的另一個但是沒有成功的方案是在 AWS 上執行 映象。我能夠在 vSphere ESXi Hypervisor 中執行它,但不能在 AWS 或任何其他雲平臺上執行它。如果有人知道原因,請在下面評論。

PS:,在 AWS 上使用 畢竟是有可能的。


作者簡介:

嗨,我的名字是 Sumit Gupta。我是來自印度古爾岡的軟體/應用/網頁開發人員。我做這個是因為我喜歡技術,並且一直迷戀它。我已經工作了 3 年以上,但我還是有很多要學習。他們不是說如果你有知識,讓別人點亮他們的蠟燭。

當在編譯時,我閱讀很多文章,或者聽音樂。

如果你想聯絡,下面是我的社交資訊和 。


via:

作者: 譯者: 校對:


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2459/viewspace-2804479/,如需轉載,請註明出處,否則將追究法律責任。

相關文章