2013-03-26 163 views
5

只是好奇。蘋果是否用他們的iPhone模擬器做了很棒的工作?爲什麼Android模擬器比iPhone模擬器慢?

比較時,i3上運行i7和iPhone模擬器的android模擬器。 iPhone模擬器比真正的iPhone快。

我沒有設置正確的東西嗎?

+2

岩石!!!!!!! – 2013-03-26 10:19:26

+1

是的,'模擬器'(FYI)比模擬器慢。 – MKJParekh 2013-03-26 10:55:07

回答

16

它的架構決策的問題:

  • 的iOS模擬器上運行本地代碼,直接在CPU上 - 該項目必須重新編譯爲x86架構與模擬器使用。模擬器本身只是模擬所有的iOS API。

  • 另一方面,Android模擬器使用QEMU來運行ARM(或x86,但ARM更受歡迎)CPU虛擬機,其上的所有軟件堆棧 - Linux內核,Android系統映像等把它看作是一個模擬的硬件。

這是一種折衷的 - iOS設備做它是更快的方式,但它是很難使其100%與目標系統相兼容。對於蘋果來說,它可能更簡單一些,因爲iOS和Mac OS有許多共同之處。

對於Android來說,模擬整個堆棧非常有意義 - 構建跨平臺SDK更容易,更容易測試某些系統級別的組件等。它只是一個不同的生態系統,具有不同的目標。別忘了,可以使用Android模擬器測試使用Android NDK編譯的本地ARM庫。

今天Android模擬器的性能或多或少是可以接受的,但這只是早期Android時代的一場災難。也就是說,我個人認爲,對於Android來說,快速的API級本機模擬器將成爲SDK的一個很好的補充,使得可以更快地測試要求不高的項目。

有趣的閱讀:http://logic-explained.blogspot.com/2011/09/why-is-there-no-x86-native-emulator-for.html

+2

這個答案有點舊,但仍然有關於ARM模擬器的很好的信息。有更新的使用Intel HAX的仿真器。如果你有一個虛擬化設置的英特爾CPU,你將獲得更高的性能。圖形部分仍然很慢,但您可以降低分辨率以彌補這一點。我已經成功地在虛擬機上運行Android x86(ctrl-F1,在虛擬機上鍵入netcfg,Ctrl-F7返回到GUI上,在開發機器上,adb connect <在這裏插入虛擬機的IP地址>)。如果您的應用沒有鎖定您的應用,則Kitkat Android x86版本非常出色 – 2015-02-23 19:19:47

+0

請參閱:http://jakewharton.com/android-needs-a-simulator/ – bryant1410 2016-01-17 23:35:51

2

iphone,iphone模擬器,蘋果筆記本電腦時,Xcode是蘋果產品

但是Android
Microsoft Windows的 的Android -Google 月食-eclipse廠商

這些工具是不同供應商的,爲什麼安卓模擬器慢。

我只是在開玩笑:)所有Android的

1

首先沒有它有一個Emulator模擬器。其次我相信模擬器的速度取決於你的機器配置。如果你已經正確創建了AVD並且給了它充足的內存,那麼配置越好,它的運行就越好。

0

Android SDK有一個模擬器,而ios SDK有模擬器。

模擬器的行爲與其他類似,但是以完全不同的方式實現。它提供了一個系統的基本行爲,但可能並不一定遵守被模擬系統的所有規則。它在那裏給你一個關於如何工作的想法。它使用像處理器,RAM等桌面資源,

模擬器是一個行爲完全像其他東西一樣的系統,並遵守被仿真系統的所有規則。它實際上是另一個系統的完全複製,直至與仿真系統的輸入和輸出二進制兼容,但是在與原始仿真系統的環境不同的環境中運行。

因此,與模擬器相比,模擬器肯定是快速的。

2

蘋果模擬器使用系統配置創建意味着將採取系統的RAM,內存,緩存自動您不必對其進行配置,所以一個iPhone模擬器不能作爲真正的設備但是在安卓模擬器創建之前必須提供所有配置細節的情況下,Android模擬器在很大程度上將充當真正的設備,但可能比Iphone Simulator慢得多。

0

Android模擬器實際上是一個模擬器,用於模擬運行Android的移動設備,意味着它模擬運行Android OS的硬件,使其儘可能接近100%相同。 JVM將Java字節碼轉換爲由仿真器解碼的ARM指令。

iOS模擬器工作在更高級別,模擬操作系統及其庫,將OS調用轉換爲OS X實現,並模擬另一方向的事件,如設備旋轉或內存不足情況。當您在iOS模擬器上運行應用程序時,該應用程序將被編譯爲可在Mac上本機運行的x86。與Android模擬器不同,您的iOS應用程序不會在模擬器中耗盡內存,因爲它不受任何特定iOS設備內存限制的限制。

1

是的,這是真的,emulator(FYI)比模擬器慢。

蘋果用iPhone模擬器做了一個很棒的工作嗎?

沒有其他開發人員可以回答這個問題,因爲iOS不是開源的。

我沒有設置正確的東西嗎?

不,你是對的一切。

1

這很簡單:

的Android C仿真真實設備,所以真正的architeture和非常接近behaivour和佈局。另一方面,蘋果模擬器不是一個模擬器,所以你不能指望真實的行爲,但它有一個緊密的佈局,主要解決了IOS,因爲你只需要1個設備來測試應用程序的行爲。