Android Emulator هو مكون من Android Studio يقوم بتشغيل نسخة افتراضية كاملة من جهاز Android على كمبيوتر المطور. يستخدم المحاكي QEMU لترجمة تعليمات ARM إلى بنية x86_64 للمضيف. وثائق Google تصف الدورة الكاملة لإعداد الأجهزة الافتراضية AVD والتسريع بالأجهزة.
الخلاصة
Android Emulator هو جهاز Android افتراضي يعمل على QEMU (Quick EMUlator) ويحاكي المنصة العتادية لنظام Android. على عكس iOS Simulator، يقوم Android Emulator بترجمة تعليمات ARM بالكامل، مما يسمح بتشغيل الكود المترجم للبنية المحمولة على مضيف x86_64.
أصدرت Google Android Emulator في عام 2007 مع أول إصدار من Android SDK. منذ ذلك الحين، تطور المحاكي من حل بطيء يعمل فقط على ARM إلى نظام عالي الأداء مع دعم GPU والتسريع العتادي ومحاكاة أجهزة الاستشعار. وفقًا لـ Google (Android Developer Blog، 2025)، يعمل المحاكي الحديث مع HAxM أسرع بمقدار 4-5 مرات من الجيل الأول.
يدعم المحاكي جميع مكونات جهاز Android: وحدة المعالجة المركزية وGPU وذاكرة الوصول العشوائي والتخزين وشاشة اللمس ومقياس التسارع والجيروسكوب ونظام تحديد المواقع والكاميرا والبطارية وNFC والبلوتوث والواي فاي. يمكن للمطور محاكاة المكالمات الواردة ورسائل 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.
// التحقق من نوع المحاكي في الكود
val isEmulator = Build.FINGERPRINT
.contains("generic") ||
Build.PRODUCT.contains("sdk")
if (isEmulator) {
Timber.d("التطبيق يعمل في محاكي")
}AVD (Android Virtual Device) هو تكوين جهاز افتراضي للمحاكي. يتيح AVD Manager في Android Studio إنشاء أجهزة بأي مجموعة من الخصائص: الطراز وحجم الشاشة وكثافة البكسل وحجم RAM وحجم التخزين وإصدار Android.
| معلمة AVD | توصية للتطوير | توصية للاختبار |
|---|---|---|
| البنيان | x86_64 (مع HAxM) | ARM64 (محاكاة خالصة) |
| RAM | 2048-4096 ميجابايت | 1536-2048 ميجابايت |
| التخزين الداخلي | 8-16 جيجابايت | 4-8 جيجابايت |
| مستوى API | أحدث إصدار مستقر | الحد الأدنى المدعوم |
| Google Play Services | تمكين | حسب الحاجة |
إنشاء AVD يتم من خلال Device Manager في Android Studio: حدد ملف تعريف عتادي (Pixel وNexus وGalaxy وغيرها) وصورة نظام وقم بتكوين المعلمات. بعد الإنشاء، يظهر الجهاز في قائمة Run Configurations لتشغيل التطبيق مباشرة.
يدعم المحاكي Quick Boot — يحفظ حالة AVD كلقطة snapshot ويستعيدها عند التشغيل التالي. يقل وقت الإقلاع من 30-60 ثانية إلى 2-5 ثوانٍ. لإعادة التعيين إلى حالة نظيفة، استخدم Cold Boot Now في AVD Manager.
ترجمة ARM هي تقنية رئيسية في Android Emulator تقوم بتحويل تعليمات ARM إلى x86_64 أثناء التشغيل. بدون الترجمة، يمكن للمحاكي تشغيل صور x86_64 فقط، مما يحد من إمكانيات الاختبار. تستخدم Google مكتبة libhoudini لترجمة ARM→x86 ومكتبات Intel لتسريع HAXM.
# التحقق من حالة HAxM على Windows
sc query "IntelHaxm"
# تثبيت HAxM عبر SDK Manager
sdkmanager "extras;intel;Hardware_Accelerated_Execution_Manager"
# تشغيل المحاكي مع التسريع العتادي
emulator -avd Pixel_9_API_35 -accel on -gpu autoIntel HAxM (Hardware Accelerated Execution Manager) هو برنامج تشغيل افتراضي لمعالجات Intel VT-x يعمل على تسريع المحاكي بمقدار 3-5 مرات. على Windows بمعالج AMD، استخدم Windows Hyper-V Platform وWHPX. بدون التسريع العتادي، يعمل المحاكي ببطء مع تأخيرات في الحركات تصل إلى 1-2 ثانية.
على macOS مع Apple Silicon (سلسلة M)، يعمل التسريع العتادي بشكل أصلي من خلال Hypervisor.framework. وفقًا لـ Google (Android Emulator Release Notes 2025)، يصل المحاكي على M2 Max إلى 95% من أداء الجهاز الحقيقي في العمليات الأساسية.
يعتمد الاختيار بين المحاكي والجهاز الحقيقي على مرحلة التطوير. على المحاكي، من المناسب التطوير وتصحيح الأخطاء: إقلاع سريع ونشر فوري وExtended Controls لمحاكاة أجهزة الاستشعار. على الجهاز الحقيقي — الاختبار النهائي للأداء والبطارية والعمل مع العتاد.
| السيناريو | المحاكي | الجهاز الحقيقي |
|---|---|---|
| تطوير واجهة المستخدم | نعم (سريع) | لا (نشر بطيء) |
| اختبار الأداء | لا (مقاييس مبالغ فيها) | نعم (قياسات حقيقية) |
| محاكاة أجهزة الاستشعار (GPS، NFC) | نعم (Extended Controls) | محدود |
| استهلاك الطاقة | غير مدعوم | نعم (Battery Historian) |
| اختبار الشبكة (2G/3G/4G/5G) | نعم (محاكاة السرعة) | نعم (مع بطاقة SIM) |
| أتمتة CI/CD | نعم (بدون أجهزة مادية) | صعب (مزرعة أجهزة) |
أداء المحاكي مع التسريع العتادي غالبًا ما يكون أعلى من جهاز حقيقي منخفض الميزانية. لذلك، قم بإجراء الاختبارات النهائية على أجهزة حقيقية بمستوى الأداء المستهدف.
يعد اكتشاف بيئة التشغيل في Kotlin مفيدًا لتعطيل الكود غير الصحيح أو إضافة معلومات تصحيح الأخطاء. يوفر Android Build.FINGERPRINT وBuild.PRODUCT وBuild.HARDWARE لهذا الغرض.
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 الحقيقية بنماذج وهمية. تجنب التحقق في إصدارات الإنتاج ما لم يكن ذلك مطلوبًا لمنطق الأعمال للتطبيق.
Android Emulator يستخدم للاختبار الآلي على خوادم CI. لتشغيل الاختبارات، تحتاج إلى إنشاء AVD وتشغيل المحاكي وانتظار التحميل الكامل للنظام. تعمل Gradle Managed Devices على تبسيط هذه العملية: يتم وصف تكوين AVD في build.gradle.kts.
// 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 أدوات قوية لمحاكاة ظروف الشبكة: زمن الوصول وعرض النطاق الترددي ونوع الشبكة (GPRS، EDGE، 3G، 4G، 5G). يتيح ذلك اختبار سلوك التطبيق عند الاتصال البطيء دون السفر فعليًا إلى منطقة ذات تغطية ضعيفة.
محاكاة أجهزة الاستشعار تشمل مقياس التسارع والجيروسكوب ومقياس المغناطيسية من خلال نماذج ثلاثية الأبعاد افتراضية للأجهزة. لنظام تحديد المواقع، يمكنك تحميل ملفات GPX بمسارات — يحاكي المحاكي الحركة على طول الإحداثيات، وهو أمر بالغ الأهمية لاختبار تطبيقات الملاحة. يتم محاكاة الكاميرا من خلال كاميرا الويب للمضيف أو تحميل الصور.
شاشات متعددة في Android Emulator تدعم شاشات متعددة للأجهزة اللوحية والأجهزة القابلة للطي. يتيح Extended Controls تغيير الاتجاه وحجم الشاشة وكثافة البكسل دون إعادة تشغيل المحاكي. لاختبار الأجهزة القابلة للطي، تتوفر أوضاع Foldable مع التبديل بين الحالة المطوية والمفتوحة.
يدعم المحاكي ليس فقط الهواتف الذكية ولكن أيضًا Wear OS وAndroid TV. لـ Wear OS، تتوفر تكوينات AVD دائرية ومستطيلة ومحاكاة دوران الإطار وإيماءات التمرير بالإضافة إلى اختبار التفاعل مع محاكي الهاتف. لـ Android TV، يتم استخدام واجهة مع تنقل D-pad. تدعم كلتا المنصتين التسريع العتادي والاختبار مع Google Play Services، وهو أمر مهم لدورة تطوير تطبيقات الساعات الذكية والتلفزيون.
الأسئلة الشائعة
يستخدم Android Emulator محاكاة ARM كاملة من خلال QEMU مع ترجمة التعليمات، بينما iOS Simulator يقوم بتجميع الكود لبنية المضيف. يدعم Android Emulator GPU والكاميرا وأجهزة الاستشعار والبلوتوث وNFC — iOS Simulator لا يدعم معظم هذه الوظائف.
في Kotlin، تحقق من Build.FINGERPRINT لوجود "generic" أو "emulator"، وكذلك Build.HARDWARE لـ "ranchu" أو "goldfish". استخدم Build.PRODUCT كعلامة إضافية — للمحاكي يحتوي على "sdk_google" أو "google_sdk".
فعّل Intel HAxM (Intel VT-x) أو Windows Hyper-V Platform (WHPX) لمعالجات AMD. استخدم صور النظام x86_64 مع التسريع العتادي. خصص 4 جيجابايت على الأقل من RAM للمحاكي في AVD Manager. فعّل Quick Boot للتحميل من snapshot.
نعم، Android Emulator يدعم محاكاة NFC بدءًا من Android 10 (API 29). يتيح Extended Controls → Phone → NFC إرسال رسائل NDEF. يتم دعم أوضاع قراءة/كتابة العلامات وpeer-to-peer وHCE. للاختبار الكامل، استخدم جهازًا حقيقيًا بشريحة NFC.
للتطوير اليومي، اختر x86_64 مع Google APIs — أقصى أداء ومجموعة كاملة من الخدمات. لاختبار التوافق، استخدم صور ARM64. لـ CI — صور بدون Google Play Services، فهي أصغر حجمًا وتقلع بشكل أسرع.
الملخص
سنقوم بتطوير تطبيق جوال جاهز
تقدم IT Sectr تطبيقات iOS وAndroid للشركات الناشئة والشركات منذ عام 2017. سوف نقدم لك النصح ونقترح أفضل حل.