Android Emulator là một thành phần của Android Studio chạy bản sao ảo hoàn chỉnh của thiết bị Android trên máy tính của nhà phát triển. Trình giả lập sử dụng QEMU để dịch các lệnh ARM sang kiến trúc x86_64 của máy chủ. Tài liệu Google mô tả chu trình đầy đủ của việc thiết lập thiết bị ảo AVD và tăng tốc phần cứng.
Những điểm chính
Android Emulator là một thiết bị Android ảo chạy trên QEMU (Quick EMUlator) và mô phỏng nền tảng phần cứng Android. Không giống như iOS Simulator, Android Emulator dịch hoàn toàn các lệnh ARM, cho phép mã được biên dịch cho kiến trúc di động chạy trên máy chủ x86_64.
Google đã phát hành Android Emulator vào năm 2007 cùng với phiên bản đầu tiên của Android SDK. Kể từ đó, trình giả lập đã phát triển từ một giải pháp chậm chỉ hỗ trợ ARM thành một hệ thống hiệu suất cao với hỗ trợ GPU, tăng tốc phần cứng và giả lập cảm biến. Theo Google (Android Developer Blog, 2025), trình giả lập hiện đại với HAxM chạy nhanh hơn 4-5 lần so với thế hệ đầu tiên.
Trình giả lập hỗ trợ tất cả các thành phần của thiết bị Android: CPU, GPU, RAM, bộ nhớ, màn hình cảm ứng, gia tốc kế, con quay hồi chuyển, GPS, camera, pin, NFC, Bluetooth và Wi-Fi. Nhà phát triển có thể mô phỏng cuộc gọi đến, SMS, các mức tín hiệu mạng khác nhau và vị trí địa lý thông qua Extended Controls.
Android Emulator sử dụng hình ảnh hệ thống (System Images) được tải xuống qua SDK Manager. Mỗi hình ảnh hệ thống chứa một bản sao hoàn chỉnh của chương trình cơ sở Android cho cấp API và kiến trúc bộ xử lý mục tiêu đã chọn. Có sẵn hình ảnh với các kiến trúc khác nhau: x86_64 (khuyến nghị với HAxM), ARM64 (để kiểm tra tương thích ARM) và Google APIs (có Google Play Services được cài sẵn). Hình ảnh riêng cũng có sẵn cho Wear OS, Android TV và Automotive.
// Kiểm tra loại trình giả lập trong mã
val isEmulator = Build.FINGERPRINT
.contains("generic") ||
Build.PRODUCT.contains("sdk")
if (isEmulator) {
Timber.d("Ứng dụng đang chạy trong trình giả lập")
}AVD (Android Virtual Device) là cấu hình thiết bị ảo cho trình giả lập. AVD Manager trong Android Studio cho phép tạo thiết bị với bất kỳ tổ hợp đặc tính nào: mẫu mã, kích thước màn hình, mật độ điểm ảnh, dung lượng RAM, kích thước bộ nhớ và phiên bản Android.
| Tham số AVD | Khuyến nghị cho phát triển | Khuyến nghị cho kiểm thử |
|---|---|---|
| Kiến trúc | x86_64 (với HAxM) | ARM64 (giả lập thuần túy) |
| RAM | 2048-4096 MB | 1536-2048 MB |
| Bộ nhớ trong | 8-16 GB | 4-8 GB |
| Cấp API | Phiên bản ổn định mới nhất | Tối thiểu được hỗ trợ |
| Google Play Services | Bật | Theo nhu cầu |
Tạo AVD được thực hiện qua Device Manager trong Android Studio: chọn hồ sơ phần cứng (Pixel, Nexus, Galaxy và các loại khác), hình ảnh hệ thống và cấu hình tham số. Sau khi tạo, thiết bị xuất hiện trong danh sách Run Configurations để chạy ứng dụng ngay lập tức.
Trình giả lập hỗ trợ Quick Boot — lưu trạng thái AVD dưới dạng snapshot và khôi phục khi khởi động lần sau. Thời gian khởi động giảm từ 30-60 giây xuống còn 2-5 giây. Để đặt lại về trạng thái sạch, hãy sử dụng Cold Boot Now trong AVD Manager.
Dịch ARM là công nghệ chính của Android Emulator chuyển đổi lệnh ARM sang x86_64 ngay lập tức. Nếu không có dịch, trình giả lập chỉ có thể chạy hình ảnh x86_64, hạn chế khả năng kiểm thử. Google sử dụng libhoudini để dịch ARM→x86 và thư viện Intel để tăng tốc HAXM.
# Kiểm tra trạng thái HAxM trên Windows
sc query "IntelHaxm"
# Cài đặt HAxM qua SDK Manager
sdkmanager "extras;intel;Hardware_Accelerated_Execution_Manager"
# Khởi động trình giả lập với tăng tốc phần cứng
emulator -avd Pixel_9_API_35 -accel on -gpu autoIntel HAxM (Hardware Accelerated Execution Manager) là trình điều khiển ảo hóa cho bộ xử lý Intel VT-x giúp tăng tốc trình giả lập gấp 3-5 lần. Trên Windows với bộ xử lý AMD, hãy sử dụng Windows Hyper-V Platform và WHPX. Nếu không có tăng tốc phần cứng, trình giả lập chạy chậm, với độ trễ hoạt ảnh lên tới 1-2 giây.
Trên macOS với Apple Silicon (dòng M), tăng tốc phần cứng hoạt động nguyên bản thông qua Hypervisor.framework. Theo Google (Android Emulator Release Notes 2025), trình giả lập trên M2 Max đạt 95% hiệu suất của thiết bị thật trong các thao tác cơ bản.
Việc lựa chọn giữa trình giả lập và thiết bị thật phụ thuộc vào giai đoạn phát triển. Trên trình giả lập, việc phát triển và gỡ lỗi rất thuận tiện: khởi động nhanh, triển khai tức thì, Extended Controls để mô phỏng cảm biến. Trên thiết bị thật — kiểm thử hiệu suất, pin và hoạt động với phần cứng cuối cùng.
| Kịch bản | Trình giả lập | Thiết bị thật |
|---|---|---|
| Phát triển giao diện | Có (nhanh) | Không (triển khai chậm) |
| Kiểm thử hiệu suất | Không (chỉ số phóng đại) | Có (đo lường thực tế) |
| Giả lập cảm biến (GPS, NFC) | Có (Extended Controls) | Hạn chế |
| Tiêu thụ điện năng | Không hỗ trợ | Có (Battery Historian) |
| Kiểm thử mạng (2G/3G/4G/5G) | Có (mô phỏng tốc độ) | Có (với SIM) |
| Tự động hóa CI/CD | Có (không cần thiết bị vật lý) | Khó (trang trại thiết bị) |
Hiệu suất của trình giả lập với tăng tốc phần cứng thường cao hơn thiết bị thật giá rẻ. Do đó, hãy thực hiện kiểm thử cuối cùng trên thiết bị thật với mức hiệu suất mục tiêu.
Phát hiện môi trường thực thi trong Kotlin hữu ích để vô hiệu hóa mã không chính xác hoặc thêm thông tin gỡ lỗi. Android cung cấp Build.FINGERPRINT, Build.PRODUCT và Build.HARDWARE cho mục đích này.
object EmulatorDetector {
val isEmulator: Boolean
get() = Build.FINGERPRINT.startsWith("generic")
|| Build.FINGERPRINT.contains("emulator")
|| Build.HARDWARE == "ranchu"
|| Build.HARDWARE == "goldfish"
fun logEnvironment() {
if (isEmulator) {
Log.d("EmulatorDetector", "Môi trường: trình giả lập")
}
}
}Sử dụng trình phát hiện giả lập giúp ích khi gỡ lỗi: trên trình giả lập bạn có thể bật nhật ký mở rộng, tắt hoạt ảnh hoặc thay thế lệnh gọi API thực bằng mô phỏng. Tránh kiểm tra trong bản dựng sản xuất trừ khi cần thiết cho logic kinh doanh của ứng dụng.
Android Emulator được sử dụng cho kiểm thử tự động trên máy chủ CI. Để chạy kiểm thử, bạn cần tạo AVD, khởi động trình giả lập và đợi hệ thống tải hoàn toàn. Gradle Managed Devices đơn giản hóa quy trình này: cấu hình AVD được mô tả trong build.gradle.kts.
// build.gradle.kts — Gradle Managed Devices
android {
testOptions {
managedDevices {
devices {
register<ManagedVirtualDevice>("pixel9Api35") {
device = "Pixel 9"
apiLevel = 35
systemImageSource = "google"
}
}
}
}
}Để khởi động trình giả lập thủ công, hãy sử dụng dòng lệnh: emulator -avd Pixel_9_API_35 -no-window -no-audio -gpu swiftshader_indirect. Cờ -no-window tắt giao diện đồ họa cho môi trường máy chủ và -gpu swiftshader_indirect cung cấp kết xuất phần mềm mà không cần GPU máy chủ.
Extended Controls trong Android Emulator cung cấp các công cụ mạnh mẽ để mô phỏng điều kiện mạng: độ trễ, băng thông và loại mạng (GPRS, EDGE, 3G, 4G, 5G). Điều này cho phép kiểm tra hành vi ứng dụng khi kết nối chậm mà không cần di chuyển thực tế đến khu vực có vùng phủ sóng kém.
Mô phỏng cảm biến bao gồm gia tốc kế, con quay hồi chuyển và từ kế thông qua mô hình 3D ảo của thiết bị. Đối với GPS, bạn có thể tải tệp GPX có lộ trình — trình giả lập mô phỏng chuyển động dọc theo tọa độ, điều này rất quan trọng để kiểm tra ứng dụng định vị. Camera được giả lập qua webcam máy chủ hoặc tải hình ảnh.
Đa màn hình trong Android Emulator hỗ trợ nhiều màn hình cho máy tính bảng và thiết bị gập. Extended Controls cho phép thay đổi hướng, kích thước màn hình và mật độ điểm ảnh (DPI) mà không cần khởi động lại trình giả lập. Để kiểm tra thiết bị gập, có sẵn chế độ Foldable với chuyển đổi giữa trạng thái gập và mở.
Trình giả lập hỗ trợ không chỉ điện thoại thông minh mà còn Wear OS và Android TV. Đối với Wear OS, có sẵn cấu hình AVD tròn và chữ nhật, mô phỏng xoay viền và cử chỉ vuốt, cũng như kiểm tra tương tác với trình giả lập điện thoại. Đối với Android TV, giao diện với điều hướng D-pad được sử dụng. Cả hai nền tảng đều hỗ trợ tăng tốc phần cứng và kiểm thử với Google Play Services, điều này quan trọng cho vòng đời phát triển ứng dụng đồng hồ thông minh và TV.
Câu hỏi thường gặp
Android Emulator sử dụng giả lập ARM hoàn chỉnh qua QEMU với dịch lệnh, trong khi iOS Simulator biên dịch mã cho kiến trúc máy chủ. Android Emulator hỗ trợ GPU, camera, cảm biến, Bluetooth, NFC — iOS Simulator không hỗ trợ hầu hết các tính năng này.
Trong Kotlin, hãy kiểm tra Build.FINGERPRINT cho "generic" hoặc "emulator", và Build.HARDWARE cho "ranchu" hoặc "goldfish". Sử dụng Build.PRODUCT làm điểm đánh dấu bổ sung — đối với trình giả lập, nó chứa "sdk_google" hoặc "google_sdk".
Bật Intel HAxM (Intel VT-x) hoặc Windows Hyper-V Platform (WHPX) cho bộ xử lý AMD. Sử dụng hình ảnh hệ thống x86_64 với tăng tốc phần cứng. Cấp ít nhất 4 GB RAM cho trình giả lập trong AVD Manager. Bật Quick Boot để tải snapshot.
Có, Android Emulator hỗ trợ giả lập NFC từ Android 10 (API 29). Extended Controls → Phone → NFC cho phép gửi tin nhắn NDEF. Các chế độ đọc/ghi thẻ, peer-to-peer và HCE được hỗ trợ. Để kiểm tra đầy đủ, hãy sử dụng thiết bị thật có chip NFC.
Để phát triển hàng ngày, hãy chọn x86_64 với Google APIs — hiệu suất tối đa và đầy đủ dịch vụ. Để kiểm tra tương thích, sử dụng hình ảnh ARM64. Cho CI — hình ảnh không có Google Play Services, chúng nhỏ hơn và khởi động nhanh hơn.
Tóm tắt
Chúng tôi sẽ phát triển ứng dụng di động chìa khóa trao tay
IT Sectr tạo các ứng dụng iOS và Android cho các công ty khởi nghiệp và doanh nghiệp từ năm 2017. Chúng tôi sẽ tư vấn và đề xuất giải pháp tốt nhất cho bạn.
Đọc thêm