2015-03-02 56 views
6

Okey,BlueStacks在我的電腦上有點慢,所以我在互聯網上的某處讀到Genymotion比BlueStacks快一點。然後我下載了Genymotion並安裝了它。經過很多複雜的步驟,我終於明白我需要ARM translation and Google app來玩Android遊戲。現在,我可以理解Google應用需要獲取Play商店。但是我仍然對'ARM翻譯'一無所知。爲什麼需要?它有什麼作用?如果我不使用ARM翻譯會發生什麼?最後,ARM代表什麼?Genymotion上的ARM翻譯

- 預先感謝。

回答

1

ARM是一種處理器架構,您可以閱讀更多關於它的文章here

Android應用程序有時設計爲X86體系結構,有時使用ARM。 您必須安裝ARM翻譯才能安裝在使用ARM體系結構的模擬器應用程序上。

這不是必須的,但許多應用程序沒有它將無法正常工作。

2

Android遊戲通常使用OpenGL ES,它從底層開始專門與ARM SoC一起工作。 Android NDK本身允許遊戲開發者通過使用C/C++甚至ARM彙編代碼來優化他們的軟件。

GenyMotion仿真器專爲英特爾x86/x64架構而設計,這就是爲什麼它們比Android仿真器更快的原因。但因爲這一點,並且因爲他們現在決定放棄ARM翻譯,所以他們無法運行遊戲。

一個標準的Android模擬器實際上將Java源代碼編譯爲dex,dex編譯爲ARM程序集,而這些ARM指令則運行在名爲QEMU的ARM模擬器上。這使得Android仿真器非常慢,因爲它實際上是在Intel-Windows機器上運行仿真ARM處理器。但它能夠運行遊戲。

Android模擬器模擬,而GenyMotion更有效的是模擬

+1

一些thruth,這裏的一些錯誤。 OpenGL與ARM或X86無關。模擬器並不真正編譯代碼。 Dex字節碼永遠不會編譯到ARM程序集。 – pcans 2015-03-04 08:24:40

+0

你的評論迫使我重新評估自己的理解。我已經看到NDK允許您在ARM程序集中編寫部分代碼,所以我自動假定OpenGL ES必須進行類似的優化。我找不到有關仿真器內部工作的任何有用的文章,請您指點我正確的方向? – 2015-03-05 11:49:04