performance studio模擬器慢 - 為什麼Android模擬器這麼慢? 我們如何加快Android模擬器的速度?




android-emulator genymotion qemu (25)

當前(2011年5月)模擬器的版本很慢,特別是對於Android 3.0(Honeycomb),主要是因為模擬器不支持硬件GL - 這意味著GL代碼被轉換為軟件(實際上是ARM軟件)然後獲得在QEMU軟件模擬。 這很瘋狂。 他們正在解決這個問題並將其部分解決,但沒有任何類型的發布質量。

查看視頻Google I / O 2011:Android開發工具 ,了解它的實際效果 - 跳轉到大約44分鐘。

我在x86 Windows XP Professional機器上有一個2.67 GHz Celeron處理器和1.21 GB RAM。

我的理解是Android Emulator應該在這樣的機器上相當快地啟動,但對我來說,它不會。 我已經按照設置IDE,SDK,JDK等的所有說明進行操作,並且在快速啟動模擬器方面取得了一些成功,但這種情況非常罕見。 如果可能的話,我怎樣才能解決這個問題?

即使它啟動並加載主屏幕,它也非常緩慢。 我在3.5版 (Galileo)和3.4版 (Ganymede)中嘗試過Eclipse IDE


從Android SDK Tools的第17版開始,模擬器可以使用圖形加速和CPU提供的擴展來提高效率。 先決條件和完整配置以及用戶註釋位於:

http://developer.android.com/guide/developing/devices/emulator.html#acceleration

要啟用GPU備用,請從命令行運行仿真器或將“-gpu on”添加到AVD配置中的其他仿真器命令行選項。

emulator -avd <avd_name> -gpu on

要使用CPU機器擴展,必須安裝驅動程序(請注意,因為它可能與現有的VirtualBoxVMware驅動程序衝突)。 安裝完成後,只要您使用基於x86的AVD,它就會自動使用。


我在加載Eclipse(3.6.1)的Xubuntu 10.04 VirtualBox 3.2.12 guest 上運行的Intel Core i7 920 2.67 GHz CPU上有間歇慢速仿真器(SDK v8.0)加載時間,最多三分鐘。我將VirtualBox guest虛擬機內存從1024 MB更改為2048 MB,從那時起,我再也沒有遇到過緩慢(加載時間一致為33秒,CPU負載一致為20%)。Eclipse和模擬器都是內存生成器。


更新

您現在可以為Android Emulator啟用快速啟動選項。 這將保存模擬器狀態,它將在下次啟動時快速啟動模擬器。

單擊“模擬器”編輯按鈕,然後單擊“ 顯示高級設置” 。 然後啟用Quick Boot如下面的截圖。

Android開發工具(ADT)9.0.0 (或更高版本)具有允許您保存AVD(模擬器)狀態的功能,您可以立即啟動模擬器。 您必須在創建新AVD時啟用此功能,或者稍後可以通過編輯AVD來創建它。

此外,我已將Device RAM Size增加到1024 ,從而實現了非常快速的仿真器。

有關詳細信息,請參閱下面給出的屏幕截圖。

使用保存快照功能創建新的AVD。

從快照啟動模擬器。

為了加速你的模擬器,你可以參考加速你的Android模擬器!


嘗試使用genymotion.com for Android Studio。 熾熱快!只需要一次安裝。沒有更多的AVD疼痛。


Eclipse(舊版)Eclipse中包含的模擬器非常慢。

最近的模擬器比2010年更快。更新SDK / IDE。

就個人而言,我使用真正的手機進行測試。 它更快,測試更真實。 但是如果你想在很多不同的Android版本上測試你的應用程序並且不想購買幾部手機,你將不得不經常使用模擬器。


重要說明 :請首先參閱有關VT的英特爾列表 ,以確保您的CPU支持英特爾VT。

HAXM加快了慢速Android模擬器的速度

HAXM代表 - “英特爾硬件加速執行管理器”

目前它僅支持英特爾®VT(英特爾虛擬化技術)。

Android模擬器基於QEMU 。 QEMU與主機系統上的HAXM驅動程序之間的接口設計為與供應商無關。

為HAXM配置Android開發環境的步驟

  1. 更新Eclipse:確保Eclipse安裝和ADT插件完全是最新的。

  2. 更新Android工具:每次Eclipse插件更新後,更新Android SDK工具非常重要。 為此,請啟動Android SDK Manager並更新所有Android SDK組件。 要利用HAXM,您必須至少發布第17版。

  • 下載x86 Atom系統映像Intel硬件加速執行管理器驅動程序 。 請看下圖:

  • 通過運行“IntelHaxm.exe”安裝HAXM驅動程序。 它將位於以下位置之一:

    • C:\Program Files\Android\android-sdk\extras\intel\Hardware_Accelerated_Execution_Manager

    • C:\Users\<user>\adt-bundle-windows-x86_64\sdk\extras\intel\Hardware_Accelerated_Execution_Manager

    如果安裝程序失敗並顯示必須打開Intel VT的消息,則需要在BIOS啟用此功能。 請參閱啟用Intel VT(虛擬化技術)中有關如何執行此操作的說明。

  • 創建一個新的 x86 AVD:請按照下圖:

  • 或者對於新的SDK,

要向此添加更多信息。

我最近將我的Ubuntu安裝升級到Ubuntu 10.04 LTS(Lucid Lynx),後者又將我的Java版本更新為:

Java version "1.6.0_20"
Java(TM) SE Runtime Environment (build 1.6.0_20-b02)
Java HotSpot(TM) 64-Bit Server VM (build 16.3-b01, mixed mode)

現在,模擬器(雖然需要一段時間才能啟動)似乎比以前運行得更快。

人們可能值得升級他們的JVM。


在開發了一段時間後,我的模擬器變得非常慢。我選擇了擦除用戶數據,而且效果要好得多。我猜你需要花時間加載你部署的每個APK文件。


這是我注意到沒人提到的。

將所有可用的處理器分配給模擬器

這是你可以嘗試的。 它確實為我加速了模擬器,特別是在加載時。 我注意到模擬器只使用可用CPU的單核。 我將其設置為使用所有可用的處理器。

我正在使用Windows 7。

當Android模擬器啟動時,打開任務管理器,在Process選項卡下查找“emulator-arm.exe”或“emulator-arm.exe * 32”...右鍵單擊它,選擇Processor Affinity和為仿真器分配盡可能多的處理器。


使用Intel x86仿真器加速器

首先,安裝Intel x86仿真器加速器(HAXM)。 這可以直接從英特爾下載或使用Android SDK Manager下載。 在SDK Manager中,它位於Extras下。

在我使用的Android Studio版本(0.8.9)中,Android SDK Manager下載了HAXM,但實際上並沒有運行安裝程序(我假設這將在以後的版本中修復)。 要運行已安裝的我必須轉到C:\ Program Files(x86)\ Android \ android-studio \ sdk \ extras \ intel \ Hardware_Accelerated_Execution_Manager並手動啟動intelhaxm.exe。

HAXM與英特爾設備配合使用,因此創建了一個帶有英特爾CPU的新仿真器。

使用Intel Atom x86創建新的AVD

這大大改善了一些事情,但模擬器仍然感覺有些遲鈍。 最後一步是在Android虛擬設備管理器(AVD)中選擇使用主機GPU。

在這些更改之後,Android Emulator在5-10秒內啟動並且運行時沒有任何明顯的延遲。 請注意,這些功能與硬件有關(CPU / GPU),可能無法在某些系統上運行。


您可以查看Google I / O 2011:Android開發工具談話中的模擬器問題,從0:40:20開始。

模擬器運行緩慢,因為完整的Android環境在模擬硬件上運行,並且指令也在模擬的ARM處理器上執行。

主要的窒息點是渲染,因為它不是在任何專用硬件上運行,而是實際上是通過軟件渲染來執行的。 降低屏幕尺寸將大大提高仿真器性能。 獲得更多/更快的內存無濟於事。

他們當時提到他們正在開發一個接口,允許模擬器通過主機硬件管理某些指令,因此最終你將能夠利用桌面硬件的原始功能來利用模擬器性能。


Android SDK rev。 17支持使用AMD和Intel虛擬化技術的虛擬機加速。

此功能可以大大提高仿真器的性能!

有關更多詳細信息,請參閱Android模擬器文檔中的以下部分: 配置虛擬機加速

不要忘記為您的操作系統安裝適當的驅動程序:

安裝驅動程序並下載Android X86系統映像後(如文檔中所述),您應該能夠使用x86映像創建新的AVD:

例如:

  • 目標:英特爾凌動x86系統映像 - API級別10
  • CPU / ABI:Intel Atom(x86)

嘗試禁用您的防病毒軟件。 也許它會使模擬器更快一點。


更新: Android studio(2.x)的最新版本對捆綁的模擬器進行了重大改進。 它具有響應性,並具有一大堆功能。

對於那些仍然感興趣的人:嘗試使用Genymotion 。 您可以在註冊後下載適用於Windows / Mac OS X / Linux的版本。 Eclipse的插件也可用:

可以通過啟動Eclipse並轉到“幫助/安裝新軟件”菜單來完成插件的安裝,然後只需添加一個帶有以下URL的新更新站點: http://plugins.genymotion.com/eclipsehttp://plugins.genymotion.com/eclipse 。 按照Eclipse指示的步驟操作。

這個模擬器快速響應。

GenyMotion允許您控制設備的各種傳感器,包括電池電量,信號強度和GPS。 最新版本現在還包含相機工具。


我注意到我的模擬器(Eclipse插件)因我的Nvidia顯卡抗鋸齒設置而顯著減慢。從圖形菜單中刪除2x抗鋸齒並將其更改為應用程序控制使其響應更快。它仍然很慢,但比以前更好。


好吧,既然有人建議Android x86作為替代測試模擬器,我也會提出我最喜歡的。這可能不是每個人的替代品,但對我來說它是完美的!

使用Bluestacks播放器。它運行Android 2.3.4並且非常流暢和快速。有時甚至比普通設備更快。唯一的缺點是,您可以只在一個屏幕尺寸上測試API級別10上的應用程序,但它非常適合測試它是否正常工作。與只需連接播放器adb運行

adb connect 127.0.0.1 

編譯後,它會立即安裝。考慮到我有相當普通的計算機硬件(具有4 GB RAM的雙核),這是非常令人印象深刻的。




較舊的Android版本運行速度更快。當我在上網本上時,我使用Android 1.5(API級別3)。但是有一些缺點 - 你的應用程序需要支持舊平台(顯然),而ndk-gdb需要運行Android 2.2(API級別8)或更高版本。但無論如何,定期針對舊平台測試應用程序是一個好主意。


試試Android x86 。 它比谷歌Android模擬器快得多。 跟著這些步驟:

  1. 安裝VirtualBox
  2. 下載所需的ISO文件
  3. 創建一個虛擬機,如Linux 2.6 /其他Linux,512 MB RAM,HD 2 GB。 網絡:PCnet-Fast III,連接到NAT 。 您也可以使用橋接適配器,但您的環境中需要DHCP服務器。
  4. 在模擬器上安裝Android x86,運行它。
  5. Alt + F1 ,鍵入netcfg ,記住IP地址,按Alt + F7
  6. 在Windows XP系統上運行cmd,將目錄更改為Android工具目錄,鍵入adb connect <virtual_machine_IP>
  7. 啟動Eclipse,打開ADT插件,找到設備,享受吧!

我注意到如果沒有連接Dalvik Debug Monitor Server(DDMS),模擬器的啟動速度會快得多。 因此,如果從Virtual Device Manager“SDK Setup.exe”啟動模擬器並且Eclipse未啟動,則模擬器的工作速度會更快。

如果你從Eclipse啟動模擬器:DDMS就在那裡,所以有時候模擬器非常慢,但有時它會更快。



模擬器似乎在空閒時放慢速度。 通過快速將鼠標放在側面的鍵上並觀察點亮響應,可以明顯看出這一點。 作為一種解決方法,我在啟動模擬器時將-icount auto傳遞給QEMU 。 您可以創建一個名為my_avd.bat的批處理文件來為您執行此操作:

emulator @my_avd -no-boot-anim -qemu -icount auto
  • @my_avd - 啟動名為“my_avd”的虛擬設備
  • -no-boot-anim - 禁用動畫以加快啟動速度
  • -qemu args... - 將參數傳遞給qemu
  • -icount [N|auto] - 啟用虛擬指令計數器,每條指令有2 ^ N個時鐘週期

這使動畫黃油變得光滑,加速adb install十倍。


我已經禁用了Windows> Preferences> General中所有未使用的選項,並且它對性能有著巨大的積極影響,切換選項卡時eclipse仍然很慢,我不想增加內存,但滾動時速度會快很多。 Thx的提示。







android performance android-emulator genymotion qemu