Android Emulator — چیست و شبیه‌سازی چگونه کار می‌کند

نویسنده: IT Sectr منتشر شده: 2026-02-09 زمان مطالعه: 8 دقیقه

Android Emulator — مؤلفه‌ای از Android Studio است که یک کپی مجازی کامل از دستگاه Android را روی رایانه توسعه‌دهنده اجرا می‌کند. شبیه‌ساز از QEMU برای ترجمه دستورالعمل‌های ARM به معماری x86_64 میزبان استفاده می‌کند. مستندات Google چرخه کامل تنظیم دستگاه‌های مجازی AVD و شتاب‌دهی سخت‌افزاری را شرح می‌دهد.

نکات اصلی

  • Android Emulator — شبیه‌سازی کامل مبتنی بر QEMU با پشتیبانی از ترجمه ARM، GPU، حسگرها و NFC
  • AVD Manager — ابزاری برای ایجاد و تنظیم دستگاه‌های مجازی با انتخاب سطح API، معماری و مشخصات سخت‌افزاری
  • HAxM و Hyper-V — شتاب‌دهی سخت‌افزاری برای افزایش 3-5 برابری عملکرد شبیه‌ساز
  • بررسی در کد — Build.FINGERPRINT و Build.PRODUCT امکان تشخیص اجرا در شبیه‌ساز در Kotlin را فراهم می‌کنند
  • شبیه‌سازی حسگرها — شتاب‌سنج، ژیروسکوپ، NFC، GPS و دوربین در شبیه‌ساز پشتیبانی می‌شوند

Android Emulator چیست؟

Android Emulator — یک دستگاه مجازی Android است که بر پایه QEMU (Quick EMUlator) کار می‌کند و پلتفرم سخت‌افزاری Android را شبیه‌سازی می‌کند. برخلاف iOS Simulator، Android Emulator دستورالعمل‌های ARM را به طور کامل ترجمه می‌کند که این امکان را فراهم می‌سازد کد کامپایل‌شده برای معماری موبایل روی میزبان x86_64 اجرا شود.

Google Android Emulator را در سال ۲۰۰۷ همراه با اولین نسخه Android SDK منتشر کرد. از آن زمان، شبیه‌ساز از یک راه‌حل کند فقط مخصوص ARM به سیستمی با عملکرد بالا با پشتیبانی از GPU، شتاب‌دهی سخت‌افزاری و شبیه‌سازی حسگرها تکامل یافته است. به گفته Google (Android Developer Blog، ۲۰۲۵)، شبیه‌ساز مدرن با HAxM 4-5 برابر سریع‌تر از نسل اول کار می‌کند.

شبیه‌ساز از تمام اجزای دستگاه Android پشتیبانی می‌کند: CPU، GPU، RAM، حافظه ذخیره‌سازی، صفحه لمسی، شتاب‌سنج، ژیروسکوپ، GPS، دوربین، باتری، NFC، Bluetooth و Wi-Fi. توسعه‌دهنده می‌تواند تماس‌های دریافتی، SMS، سطوح مختلف سیگنال شبکه و موقعیت جغرافیایی را از طریق Extended Controls شبیه‌سازی کند.

تصاویر سیستم برای شبیه‌ساز

Android Emulator از تصاویر سیستم (System Images) استفاده می‌کند که از طریق SDK Manager بارگیری می‌شوند. هر تصویر سیستم شامل یک کپی کامل از سیستم‌عامل Android برای سطح API و معماری پردازنده هدف است. تصاویر با معماری‌های مختلف در دسترس هستند: x86_64 (توصیه شده با HAxM)، ARM64 (برای تست سازگاری ARM) و Google APIs (با Google Play Services از پیش نصب شده). برای Wear OS، Android TV و Automotive نیز تصاویر جداگانه‌ای وجود دارد.

kotlin
// بررسی نوع شبیه‌ساز در کد
val isEmulator = Build.FINGERPRINT
    .contains("generic") ||
    Build.PRODUCT.contains("sdk")

if (isEmulator) {
    Timber.d("برنامه در شبیه‌ساز اجرا شده است")
}

تنظیم AVD در Android Studio

AVD (Android Virtual Device) — پیکربندی دستگاه مجازی برای شبیه‌ساز. AVD Manager در Android Studio امکان ایجاد دستگاه‌هایی با هر ترکیبی از مشخصات را فراهم می‌کند: مدل، اندازه صفحه، تراکم پیکسل، مقدار RAM، اندازه حافظه ذخیره‌سازی و نسخه Android.

پارامتر AVDتوصیه برای توسعهتوصیه برای تست
معماریx86_64 (با HAxM)ARM64 (شبیه‌سازی خالص)
RAM۲۰۴۸-۴۰۹۶ MB۱۵۳۶-۲۰۴۸ MB
حافظه داخلی۸-۱۶ GB۴-۸ GB
سطح APIآخرین نسخه پایدارحداقل پشتیبانی‌شده
Google Play Servicesفعالدر صورت نیاز

ایجاد AVD از طریق Device Manager در Android Studio انجام می‌شود: پروفایل سخت‌افزاری (Pixel، Nexus، Galaxy و غیره)، تصویر سیستم را انتخاب کنید و پارامترها را تنظیم کنید. پس از ایجاد، دستگاه در لیست Run Configurations برای اجرای مستقیم برنامه ظاهر می‌شود.

حالت Snapshot برای شروع سریع

شبیه‌ساز از Quick Boot پشتیبانی می‌کند — وضعیت AVD را به عنوان snapshot ذخیره کرده و در اجرای بعدی آن را بازیابی می‌کند. زمان بارگذاری از ۳۰-۶۰ ثانیه به ۲-۵ ثانیه کاهش می‌یابد. برای بازنشانی به حالت خالص، از Cold Boot Now در AVD Manager استفاده کنید.

ترجمه ARM و شتاب‌دهی سخت‌افزاری

ترجمه ARM — فناوری کلیدی Android Emulator است که دستورالعمل‌های ARM را به طور لحظه‌ای به x86_64 تبدیل می‌کند. بدون ترجمه، شبیه‌ساز فقط می‌توانست تصاویر x86_64 را اجرا کند که تست را محدود می‌کند. Google از libhoudini برای ترجمه ARM→x86 و کتابخانه‌های Intel برای شتاب‌دهی HAXM استفاده می‌کند.

bash
# بررسی وضعیت HAxM در Windows
sc query "IntelHaxm"

# نصب HAxM از طریق SDK Manager
sdkmanager "extras;intel;Hardware_Accelerated_Execution_Manager"

# راه‌اندازی شبیه‌ساز با شتاب‌دهی سخت‌افزاری
emulator -avd Pixel_9_API_35 -accel on -gpu auto

Intel HAxM (Hardware Accelerated Execution Manager) — درایور مجازی‌سازی برای پردازنده‌های Intel VT-x که شبیه‌ساز را ۳-۵ برابر سریع‌تر می‌کند. در Windows با پردازنده AMD از Windows Hyper-V Platform و WHPX استفاده کنید. بدون شتاب‌دهی سخت‌افزاری، شبیه‌ساز به کندی کار می‌کند و تأخیر انیمیشن‌ها تا ۱-۲ ثانیه می‌رسد.

برای macOS روی Apple Silicon (سری M)، شتاب‌دهی سخت‌افزاری به صورت بومی از طریق Hypervisor.framework کار می‌کند. به گفته Google (Android Emulator Release Notes ۲۰۲۵)، شبیه‌ساز روی M2 Max به ۹۵٪ عملکرد دستگاه واقعی در عملیات پایه می‌رسد.

شبیه‌ساز در مقابل دستگاه واقعی

انتخاب بین شبیه‌ساز و دستگاه واقعی به مرحله توسعه بستگی دارد. روی شبیه‌ساز توسعه و اشکال‌زدایی راحت است: راه‌اندازی سریع، استقرار فوری، Extended Controls برای شبیه‌سازی حسگرها. روی دستگاه واقعی — تست نهایی عملکرد، باتری و کار با سخت‌افزار.

سناریوشبیه‌سازدستگاه واقعی
توسعه UIبله (سریع)خیر (استقرار طولانی)
تست عملکردخیر (شاخص‌های بالاتر از واقعیت)بله (اندازه‌گیری واقعی)
شبیه‌سازی حسگرها (GPS، NFC)بله (Extended Controls)محدود
مصرف انرژیپشتیبانی نمی‌شودبله (Battery Historian)
تست شبکه (2G/3G/4G/5G)بله (شبیه‌سازی سرعت)بله (با سیم‌کارت)
اتوماسیون CI/CDبله (بدون دستگاه فیزیکی)مشکل (مزرعه دستگاه)

عملکرد شبیه‌ساز با شتاب‌دهی سخت‌افزاری اغلب از دستگاه واقعی ارزان‌قیمت بالاتر است. بنابراین تست‌های نهایی را روی دستگاه‌های واقعی با سطح عملکرد هدف انجام دهید.

تشخیص شبیه‌ساز در کد Kotlin

تعیین محیط اجرا در Kotlin برای غیرفعال کردن کد نادرست یا افزودن اطلاعات اشکال‌زدایی مفید است. Android Build.FINGERPRINT، Build.PRODUCT و Build.HARDWARE را برای این منظور فراهم می‌کند.

kotlin
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", "محیط: شبیه‌ساز")
        }
    }
}

استفاده از تشخیص‌دهنده شبیه‌ساز در اشکال‌زدایی کمک می‌کند: روی شبیه‌ساز می‌توان لاگ‌های گسترده را فعال کرد، انیمیشن‌ها را غیرفعال کرد یا فراخوانی‌های واقعی API را با mock جایگزین کرد. اگر منطق تجاری برنامه الزام نمی‌کند، از بررسی در بیلدهای تولیدی خودداری کنید.

تست برنامه‌ها روی شبیه‌ساز

Android Emulator برای تست خودکار روی سرورهای CI استفاده می‌شود. برای اجرای تست‌ها باید AVD ایجاد کرد، شبیه‌ساز را راه‌اندازی کرد و منتظر بارگذاری کامل سیستم ماند. Gradle Managed Devices این فرآیند را ساده می‌کند: پیکربندی AVD در build.gradle.kts توضیح داده می‌شود.

kotlin
// build.gradle.kts — Gradle Managed Devices
android {
    testOptions {
        managedDevices {
            devices {
                register<ManagedVirtualDevice>("pixel9Api35") {
                    device = "Pixel 9"
                    apiLevel = 35
                    systemImageSource = "google"
                }
            }
        }
    }
}

برای راه‌اندازی دستی شبیه‌ساز از خط فرمان استفاده کنید: emulator -avd Pixel_9_API_35 -no-window -no-audio -gpu swiftshader_indirect. پرچم -no-window رابط گرافیکی را برای محیط سرور غیرفعال می‌کند و -gpu swiftshader_indirect رندرینگ نرم‌افزاری بدون GPU میزبان را فراهم می‌کند.

شبیه‌سازی شبکه و حسگرها

Extended Controls در Android Emulator ابزارهای قدرتمندی برای شبیه‌سازی شرایط شبکه فراهم می‌کند: تأخیر (latency)، پهنای باند (bandwidth) و نوع شبکه (GPRS، EDGE، 3G، 4G، 5G). این امکان را فراهم می‌کند رفتار برنامه را در اتصال کند بدون سفر فیزیکی به منطقه‌ای با پوشش ضعیف تست کنید.

شبیه‌سازی حسگرها شامل شتاب‌سنج، ژیروسکوپ و مغناطیس‌سنج از طریق مدل‌های سه‌بعدی مجازی دستگاه‌ها است. برای GPS می‌توان فایل‌های GPX با مسیرها بارگیری کرد — شبیه‌ساز حرکت روی مختصات را شبیه‌سازی می‌کند که برای تست برنامه‌های ناوبری حیاتی است. دوربین از طریق وب‌کم میزبان یا بارگیری تصاویر شبیه‌سازی می‌شود.

چند صفحه‌ای (Multi-display) در Android Emulator از چندین صفحه برای تبلت‌ها و دستگاه‌های تاشو پشتیبانی می‌کند. Extended Controls امکان تغییر جهت، اندازه صفحه و تراکم پیکسل (DPI) را بدون راه‌اندازی مجدد شبیه‌ساز فراهم می‌کند. برای تست دستگاه‌های تاشو، حالت‌های Foldable با سوئیچ بین حالت بسته و باز در دسترس هستند.

Android Emulator برای Wear OS و Android TV

شبیه‌ساز نه تنها از گوشی‌های هوشمند، بلکه از Wear OS و Android TV نیز پشتیبانی می‌کند. برای Wear OS، پیکربندی‌های AVD گرد و مستطیلی، شبیه‌سازی چرخش bezel و حرکات swipe، و همچنین تست تعامل با شبیه‌ساز تلفن در دسترس هستند. برای Android TV از رابط با ناوبری D-pad استفاده می‌شود. هر دو پلتفرم از شتاب‌دهی سخت‌افزاری و تست با Google Play Services پشتیبانی می‌کنند که برای چرخه توسعه ساعت‌های هوشمند و برنامه‌های تلویزیونی مهم است.

سوالات متداول

تفاوت Android Emulator با iOS Simulator چیست؟

Android Emulator از شبیه‌سازی کامل ARM از طریق QEMU با ترجمه دستورالعمل‌ها استفاده می‌کند، در حالی که iOS Simulator کد را برای معماری میزبان کامپایل می‌کند. Android Emulator از GPU، دوربین، حسگرها، Bluetooth، NFC پشتیبانی می‌کند — iOS Simulator بیشتر این ویژگی‌ها را پشتیبانی نمی‌کند.

چگونه در کد بررسی کنیم که برنامه در شبیه‌ساز اجرا می‌شود؟

در Kotlin Build.FINGERPRINT را برای وجود "generic" یا "emulator" و همچنین Build.HARDWARE را برای "ranchu" یا "goldfish" بررسی کنید. از Build.PRODUCT به عنوان نشانگر اضافی استفاده کنید — برای شبیه‌ساز حاوی "sdk_google" یا "google_sdk" است.

چگونه سرعت Android Emulator را افزایش دهیم؟

Intel HAxM (Intel VT-x) یا Windows Hyper-V Platform (WHPX) را برای پردازنده‌های AMD فعال کنید. از تصاویر سیستم x86_64 با شتاب‌دهی سخت‌افزاری استفاده کنید. حداقل ۴ گیگابایت RAM به شبیه‌ساز در AVD Manager اختصاص دهید. Quick Boot را برای بارگذاری snapshot فعال کنید.

آیا می‌توان NFC را در Android Emulator تست کرد؟

بله، Android Emulator از شبیه‌سازی NFC از Android 10 (API 29) پشتیبانی می‌کند. Extended Controls → Phone → NFC امکان ارسال پیام‌های NDEF را فراهم می‌کند. حالت‌های خواندن/نوشتن تگ، peer-to-peer و HCE پشتیبانی می‌شوند. برای تست کامل از دستگاه واقعی با تراشه NFC استفاده کنید.

کدام تصاویر سیستم برای AVD بهتر هستند؟

برای توسعه روزانه x86_64 با Google APIs را انتخاب کنید — حداکثر عملکرد و مجموعه کامل خدمات. برای تست سازگاری از تصاویر ARM64 استفاده کنید. برای CI — تصاویر بدون Google Play Services، آنها کوچک‌تر هستند و سریع‌تر بارگذاری می‌شوند.

خلاصه

  • Android Emulator — شبیه‌سازی کامل دستگاه Android مبتنی بر QEMU با پشتیبانی از ترجمه ARM، GPU، حسگرها و NFC
  • AVD Manager — پیکربندی دستگاه‌های مجازی با انتخاب معماری، سطح API، RAM و مشخصات سخت‌افزاری
  • شتاب‌دهی سخت‌افزاری — HAxM، Hyper-V و WHPX عملکرد شبیه‌ساز را ۳-۵ برابر افزایش می‌دهند
  • بررسی محیط — Build.FINGERPRINT، Build.PRODUCT و Build.HARDWARE برای تشخیص اجرا در شبیه‌ساز
  • Extended Controls — شبیه‌سازی GPS، NFC، حسگرها، تماس‌های دریافتی و SMS برای تست سناریوها
  • اتوماسیون CI — Gradle Managed Devices و تصاویر x86_64 برای تست مؤثر روی CI
  • Quick Boot — حالت snapshot زمان بارگذاری شبیه‌ساز را به ۲-۵ ثانیه کاهش می‌دهد

ما یک اپلیکیشن موبایل به صورت کلید در دست توسعه خواهیم داد

IT Sectr از سال 2017 برنامه‌های iOS و Android را برای استارتاپ‌ها و کسب‌وکارها ایجاد می‌کند. ما به شما مشاوره می‌دهیم و بهترین راه‌حل را پیشنهاد خواهیم کرد.

بحث درباره پروژه

همچنین بخوانید