Làm cho trình giả lập Android chạy nhanh hơn


251

Trình giả lập Android hơi chậm chạp. Đối với một số thiết bị, như Motorola Droid và Nexus One, ứng dụng chạy nhanh hơn trong thiết bị thực tế so với trình giả lập. Đây là một vấn đề khi thử nghiệm trò chơi và hiệu ứng hình ảnh.

Làm thế nào để bạn làm cho trình giả lập chạy càng nhanh càng tốt? Tôi đã từng chơi đùa với các thông số của nó nhưng chưa tìm thấy cấu hình nào cho thấy sự cải thiện rõ rệt.


1
tất cả các ứng dụng của tôi chạy nhanh hơn trên thiết bị

16
Thật buồn cười vì trình giả lập iPhone hoàn toàn ngược lại. Các ứng dụng chạy chậm hơn trên thiết bị. Trong hầu hết các trường hợp, tôi thích trình giả lập chậm hơn, bởi vì nó kích thích bạn cải thiện ứng dụng của mình, nhưng đôi khi bạn chỉ muốn thấy nó hoạt động như trong một thiết bị thực.
hpique

1
Có thể làm cho nó chạy NHIỀU nhanh hơn bình thường bằng cách sử dụng VirtualBox - xem stackoverflow.com/a/6058689/40961
David d C e Freitas

5
iOS và Windows Mobile sử dụng Trình mô phỏng, trong khi Android sử dụng Trình giả lập. Trình mô phỏng triển khai lại tất cả các thư viện di động và API bằng thư viện máy chủ và do đó rất nhanh. Trình giả lập sử dụng các thư viện giống như trên các thiết bị thực, vì vậy nó chậm hơn. Về mặt Android, nếu bạn sử dụng máy ảo Android, nó sẽ rất nhanh. Chúng tôi cung cấp một vm miễn phí tại đây: leapdroid.com
huisinro

2
... và thật điên rồ khi 6 năm sau, và ngay cả với HAXM và hình ảnh hệ thống x86 và môi trường dev được mô tả kỹ lưỡng, trình giả lập Android vẫn chậm như mật đường?
aroth

Câu trả lời:


229

Trang web chính thức

~ 50% nhanh hơn

Các cửa sổ:

  • Cài đặt "Trình tăng tốc giả lập Intel x86 (HAXM)" => Trình quản lý SDK / Extras
  • Cài đặt "Hình ảnh hệ thống nguyên tử Intel x86" => Trình quản lý SDK / Android 2.3.3
  • Chuyển đến thư mục gốc SDK của Android và điều hướng đến phần mở rộng \ intel \ Phần cứng_Accelerated_Execut_Manager. Thực thi tập tin IntelHaxm.exe để cài đặt. (trong Android Studio, bạn có thể điều hướng đến: Cài đặt -> SDK Android -> Công cụ SDK -> Trình tăng tốc giả lập Intel x86 (trình cài đặt HAXM))

  • Tạo AVD với CPU / ABI "Intel Atom x86"

  • Chạy trình giả lập và kiểm tra trong bảng điều khiển HAXM đang chạy (mở cửa sổ Dấu nhắc Lệnh và thực hiện lệnh: sc query intelhaxm)

nhập mô tả hình ảnh ở đây

Cũng đừng quên cài đặt cái này

nhập mô tả hình ảnh ở đây

PS trong khi tạo AVD thêm bộ nhớ mô phỏng: Phần cứng / Mới / Kích thước ram thiết bị / thiết lập giá trị 512 trở lên

Linux:

  • Cài đặt KVM: mở GOOGLE, viết "cài đặt kvm"
  • Tạo AVD với CPU / ABI "Intel Atom x86"
  • Chạy từ dòng lệnh: trình giả lập -avd avd_name -qemu -m 512 -enable-kvm
  • Hoặc chạy từ Eclipse: Chạy / Chạy Cấu hình / Tab "Target" -> kiểm tra Intel x86 AVD và trong cửa sổ "Tùy chọn dòng lệnh giả lập bổ sung" thêm: -qemu -m 512 -enable-kvm (bấm Chạy)

nhập mô tả hình ảnh ở đây

PS cho Fedora , cho Ubuntu

Hệ điều hành-X:

  • Trong Trình quản lý SDK Android, cài đặt Hình ảnh hệ thống Intel x86 Atom
  • Trong Trình quản lý SDK Android, cài đặt Trình tăng tốc giả lập Intel x86 (HAXM)
  • Trong công cụ tìm, đi đến vị trí cài đặt Bộ tăng tốc Trình mô phỏng Intel và cài đặt IntelHAXM (mở dmg và chạy cài đặt). Bạn có thể tìm vị trí bằng cách đặt chuột lên mục Trình tăng tốc giả lập trong Trình quản lý SDK.
  • Tạo hoặc cập nhật AVD và chỉ định Intel Atom x86 làm CPU. Trình tăng tốc giả lập Intel x86 (HAXM) hiển thị Vị trí

PS: Kiểm tra công cụ này, rất thuận tiện ngay cả khi dùng thử


8
Điều này cũng hoạt động trong OSX. Bạn cần cài đặt /extras/intel/Hardware_Accelerated_Execution_Manager/IntelHAXM.dmgsau khi tải xuống gói từ trình quản lý SDK.
Jarett Millard

5
Các hướng dẫn Windows với "Sử dụng GPU máy chủ" đã cho tôi một trình giả lập siêu nhanh! (Tôi có bộ xử lý Intel được hỗ trợ và card đồ họa nVidia.) Các hình ảnh động đều mượt mà ( hầu hết thời gian ; vào thời điểm khác, rất ít giật) Lưu ý rằng bạn phải khởi động lại Eclipse cho Trình quản lý AVD để chọn tùy chọn CPU Intel Atom (x86) . Mẹo: Không phân bổ quá nhiều RAM. Với RAM 1GB, trình giả lập không khởi động được (với GPU) nhưng với RAM 512 MB, nó chạy rất mượt và khởi động rất nhanh (một lần nữa với GPU).
ADTC

Tôi thấy rằng LogCat bị spam với rất nhiều cảnh báo về Dấu vết. Để lọc chúng ra, sử dụng ^(?!.*(nativeGetEnabledTags)).*$làm bộ lọc văn bản. Tôi đã báo cáo đây là một vấn đề lỗi . Ngoài ra, tôi nghĩ rằng bạn phải tắt thiết bị giả lập đúng cách (giữ nút nguồn, sau đó chọn Tắt nguồn ) để tránh gặp lỗi khi bạn khởi động lần sau (tôi chỉ có thể đóng trình giả lập ARM, nhưng với trình giả lập Intel, chỉ đóng cửa dường như tạo ra vấn đề).
ADTC

Tôi sẽ cho bạn +100 nếu tôi có thể. Hoạt động trên Windows 8 và hiệu suất tăng lên khủng khiếp!
Paolo M

2
Tôi đã phải vô hiệu hóa công nghệ Hyper V trước tiên thông qua chương trình và các tính năng trong bảng điều khiển để làm cho nó hoạt động.
Mike Flynn

34

CẬP NHẬT: Bây giờ đã có sẵn hình ảnh Intel x86, câu trả lời tốt nhất là bằng cách nhiệt tình ở trên.

Như CommonsWare đã chỉ ra một cách chính xác, trình giả lập chậm vì nó mô phỏng CPU ARM, yêu cầu dịch sang mã opc của Intel. Ảo hóa này nhai CPU.

Để làm cho trình giả lập nhanh hơn, bạn phải cung cấp cho nó nhiều CPU hơn. Bắt đầu với CPU nhanh hoặc nâng cấp nếu bạn có thể.

Sau đó, cung cấp cho trình giả lập nhiều CPU bạn có:

  1. Vô hiệu hóa siêu phân luồng - Vì trình giả lập dường như không sử dụng nhiều hơn một lõi, siêu phân luồng thực sự làm giảm lượng thời gian CPU tổng thể mà trình giả lập sẽ nhận được. Vô hiệu hóa HT sẽ làm chậm các ứng dụng tận dụng nhiều CPU. Siêu phân luồng phải được tắt trong BIOS của bạn.
  2. Làm cho trình giả lập chạy trên CPU khác với CPU 0 - Điều này có tác động nhỏ hơn nhiều so với tắt HT, nhưng nó giúp một số. Trên Windows, bạn có thể chỉ định CPU nào sẽ chạy trên quy trình. Nhiều ứng dụng sẽ nhai CPU 0 và theo mặc định, trình giả lập chạy trên CPU 0. Tôi thay đổi trình giả lập để chạy trên cái cuối cùng. Lưu ý rằng trên OS X, bạn không thể đặt mối quan hệ (xem: /superuser/149312/how-to-set- Processor-affinity-on-a- mag ).

Tôi đang thấy đâu đó cải thiện 50% với hai thay đổi này.

Để đặt mối quan hệ bộ xử lý trên Windows 7:

  1. Mở trình quản lý tác vụ
  2. Nhấp vào Xem tất cả quy trình (để chạy với tư cách quản trị viên, nếu không, bạn không thể đặt mối quan hệ bộ xử lý)
  3. Nhấp chuột phải vào emulator.exe và chọn Đặt mối quan hệ ...
  4. Trên hộp thoại Đặt mối quan hệ, chỉ chọn CPU cuối cùng

Lưu ý: Khi bạn thay đổi mối quan hệ theo cách này, nó chỉ thay đổi trong suốt vòng đời của quy trình. Bắt đầu tiếp theo, bạn phải làm lại.

nhập mô tả hình ảnh ở đây


22
Tỷ lệ phần trăm CPU tăng gấp đôi khi bạn vô hiệu hóa siêu phân luồng vì bạn đã giảm một nửa số lượng bộ xử lý logic.
Timothy003

1
Nó hoạt động như bùa mê nhưng .. Bạn có biết cách thực hiện trên Ubuntu 11.10 không?
emeraldhieu

1
@ Timothy003 có hoàn toàn chính xác. Và nhân đôi CPU mà trình giả lập sẽ sử dụng.
mcohen75

3
Bạn chỉ thấy một nhân đôi trong trình quản lý tác vụ số; không có trong thực tế Nếu bạn không chạy đủ phần mềm để tạo ra đủ công việc để có tương đương ít nhất 4 luồng với 100% CPU, thì một vài ứng dụng sử dụng CPU nặng vẫn có hiệu quả gần như toàn bộ lõi, chứ không phải là một nửa giả định ngây thơ của bạn quản lý tác vụ đang hiển thị nghĩa là gì.
Dan đang loay hoay bởi Firelight

3
Để xác nhận những gì @Dan Neely nói: Tôi có một ứng dụng lõi đơn, chỉ cần ghi 100% cpu. Khi tôi có HT, nó hiển thị khoảng 25%, không hiển thị khoảng 50%, nhưng thực tế trong tính toán những gì nó phải tính toán cùng một lúc. Vì vậy, không có sự khác biệt (ít nhất là trên Sandy Bridge).
bartosz.r

17

Tôi muốn đề nghị cho Genymotion một spin. Nó chạy trong VirtualBox của Oracle và sẽ đạt 60 fps trên một hệ thống vừa phải.

Đây là bản ghi âm từ một trong các xưởng của tôi, chạy trên mẫu MacBook Air 2012 cấp thấp:

Trình giả lập Nexus 7 chạy ở tốc độ 56,6 khung hình / giây

Nếu bạn không thể đọc văn bản, đó là trình giả lập Nexus 7 chạy ở tốc độ 56,6 khung hình / giây. Phần thưởng bổ sung (lớn!) Là Google Play và Google Play Services được đóng gói cùng với các máy ảo.

(Nguồn của hình ảnh động có thể được tìm thấy ở đây .)


12

Bật Tăng tốc phần cứng GPU (ngoài HAXM của Intel), nếu bạn đang sử dụng API 15 v3 hoặc mới hơn và SDK Tools v17 +. Tăng tốc đồ họa cho trình giả lập tận dụng phần cứng đồ họa của máy tính phát triển của bạn, cụ thể là bộ xử lý đồ họa (GPU) của nó, để giúp việc vẽ màn hình nhanh hơn. Điều này mang lại một sự gia tăng đáng chú ý về tốc độ.

Để bật tính năng tăng tốc đồ họa được bật theo mặc định trên trình giả lập của bạn : khi tạo AVD, trong phần Phần cứng, nhấp vào Mới, chọn mô phỏng GPU và đặt giá trị thành Có.

Để chỉ bật tăng tốc khi chạy : sử dụng cờ -gpu trong khi khởi động trình giả lập như thế này:

emulator -avd <avd_name> -gpu on

Nguồn: Google Sử dụng hướng dẫn Trình mô phỏng .


10

Chỉnh sửa Mặc dù sử dụng hình ảnh Intel có được một số hiệu suất tăng, hiệu suất đạt được bằng cách sử dụng Genymotion lớn hơn nhiều. Xem câu trả lời của Paul Lammertsma .

Trả lời trước

Với ADT rev 17, trình giả lập hỗ trợ chạy hình ảnh hệ thống x86 ở chế độ ảo hóa trên Windows và Mac OS X. Điều này có tác động đáng chú ý đến hiệu suất.

ADT rev 17 ghi chú: http://android-developers.blogspot.jp/2012/03/updated-sdk-tools-and-adt-revision-17.html

Định cấu hình Gia tốc Máy ảo: http://developer.android.com/guide/developing/devices/emulator.html#accel-vm


7

Gần đây tôi đã chuyển từ lõi 2 @ 2.5 với 3gb ram sang i7 @ 1.73 với ram 8gb (cả hai hệ thống chạy Ubuntu 10.10) và trình giả lập chạy nhanh hơn ít nhất hai lần. Ném thêm phần cứng vào nó chắc chắn sẽ giúp.


Đây không thực sự là một giải pháp: nó có thể làm cho trình giả lập có thông lượng cao hơn mỗi lần, nhưng nó sẽ không thực sự làm cho nó chạy nhanh hơn.
Rõ ràng hơn


4

Tôi nhận thấy rằng trình giả lập mặc định chỉ Core 0, trong đó hầu hết các ứng dụng Windows sẽ mặc định là lõi "bất kỳ". Ngoài ra, nếu bạn đặt nó trên lõi khác (như lõi cuối cùng), nó có thể khiến trình giả lập phát điên. Nếu có thể, bạn có thể thử đặt các ứng dụng sử dụng CPU nặng của mình lên các lõi CPU khác để tăng tốc độ.

Thông minh về phần cứng, có được CPU nhanh nhất bạn có thể làm việc cho các ứng dụng lõi đơn. Hơn 2 lõi có thể không có sự khác biệt lớn về hiệu năng giả lập.

Eclipse + trình giả lập Android cùng nhau ăn hết một tấn RAM. Tôi muốn giới thiệu ít nhất 3 hợp đồng RAM vì tôi đã sử dụng một hệ thống có 2 hợp đồng RAM và nó bị chậm lại vì hệ thống hết RAM và bắt đầu sử dụng tệp trang.

Tôi cảm thấy rằng các CPU tốt nhất cho nó có thể sẽ có xung nhịp cao (chỉ sử dụng xung nhịp làm thước đo cho các CPU trong cùng chuỗi btw), xử lý tốt các hoạt động không phải SIMD và có cơ chế tăng áp turbo. Không có nhiều điểm chuẩn dựa trên Java, nhưng nhìn tổng thể về điểm chuẩn ứng dụng như nén và văn phòng. Đừng nhìn vào trò chơi hoặc phương tiện truyền thông vì những thứ đó bị ảnh hưởng rất nhiều bởi SIMD. Nếu bạn tìm thấy một Java, thậm chí tốt hơn.


4

Trên google I / O năm nay (2011), Google đã trình diễn một trình giả lập nhanh hơn. Vấn đề không phải là quá nhiều về mã byte giữa ARM và x86 mà là kết xuất phần mềm được thực hiện bởi QEMU. Họ bỏ qua kết xuất QEMU và gửi kết xuất trực tiếp đến máy chủ X mà tôi tin. Họ đã cho thấy một trò chơi xe hơi với hiệu suất và khung hình / giây thực sự tốt.

Tôi tự hỏi khi nào nó sẽ có sẵn cho các nhà phát triển ...


Bất kỳ tin tức của trình giả lập này? Tên của nó là gì?
alcor

Tôi không có tin tức gì. Tôi đã không theo dõi các bản cập nhật trình giả lập Android trong năm ngoái hoặc lâu hơn.
Cesar

3

Google gần đây đã công bố một trình giả lập mới cho Android. Nó nhanh hơn và tốt hơn nhiều so với cái cũ. Bạn có thể tìm thêm thông tin về nó ở đây .


1

Tôi nghĩ rằng đó là vì máy ảo clr sử dụng cpu trực tiếp mà không cần dịch mã opcode. Nó có thể được tối ưu hóa cho ứng dụng clr hoặc có thể là windows mobile / window phone 7 được khởi động trên bộ xử lý INTEL. Nền tảng Android dựa trên linux và theo lý thuyết bạn có thể khởi động Android trên máy ảo trong môi trường i686. Trong trường hợp này, các máy ảo như vmware có thể thực thi một số opcodes direcly. Nhưng tùy chọn này sẽ chỉ được phép nếu bạn viết trên Java. Bởi vì Java diễn giải mã byte của họ hoặc biên dịch trước nó trước khi thực thi. xem: http://www.taranfx.com/how-to-run-google-android-in-virtualbox-vmware-on-netbooks


1

Cảm ơn bạn @zest! Làm việc như người ở. Một số điều cần lưu ý: Cần áp dụng hotfix của Intel cho HAXM để giải quyết vấn đề hoảng loạn hạt nhân: http://software.intel.com/en-us/android/articles/intel-hardware-accelerated-execut-manager Ngoài ra, lưu ý , nếu bạn có nhiều abi, bạn cần gỡ cài đặt do lỗi trong phiên bản API Android mới nhất (r19): https://code.google.com.vn/p/android/issues/detail?id= 66740 (loại bỏ armeabi-v7a trong trường hợp này, vì bạn muốn x86 abi). Khác với 45 phút tôi phải giải quyết những điều này, đó là một bài tập rất bổ ích về hiệu suất tăng của trình giả lập.


1

Bạn cũng có thể dùng thử Trình giả lập Android của Visual Studio , cũng có thể được cài đặt dưới dạng trình giả lập độc lập (bạn không cần Visual Studio). Xin lưu ý rằng nó chỉ có thể được cài đặt trên Windows Pro hoặc các hệ thống cao hơn.



1

chọn trình giả lập độ phân giải thấp (ví dụ: Nexus S) nếu bạn không có card đồ họa tốt (như tôi)


0

Tôi đã sử dụng CPU / ABI của Intel (86). Tôi đã tạo một trình giả lập khác bằng ARM (armeabi-v7a) và tôi thấy khá cải thiện về tốc độ. Tôi đang sử dụng nền tảng 4.1.2 API cấp 16


0

Tôi hy vọng điều này sẽ giúp bạn.

Goto to your BIOS settings. Enable your Virtualization technology in your settings..

Nó đã giải quyết vấn đề của tôi ...


0

Cập nhật Android Studio hiện tại của bạn lên Android Studio 2.0 Và cũng cập nhật hình ảnh hệ thống.

Trình giả lập Android Studio 2.0 chạy nhanh hơn ~ 3 lần so với trình giả lập trước đây của Android và với các cải tiến của ADB, giờ đây bạn có thể đẩy các ứng dụng và dữ liệu nhanh hơn gấp 10 lần cho trình giả lập so với thiết bị vật lý. Giống như một thiết bị vật lý, trình giả lập Android chính thức cũng tích hợp Dịch vụ Google Play, do đó bạn có thể kiểm tra thêm chức năng API. Cuối cùng, trình giả lập mới có các tính năng mới phong phú để quản lý các cuộc gọi, pin, mạng, GPS, v.v.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.