استخدام الأجهزة الافتراضية في "محاكي Android"

يمكنك استخدام "محاكي Android" لإنشاء عمليات محاكاة لأجهزة Android تعمل بصور نظام Android المخصّصة. بالإضافة إلى ذلك، يمكنك إضافة إمكانية استخدام الشاشات المتعددة إلى عمليات المحاكاة في "محاكي Android".

هندسة Android Emulator

يشغّل "محاكي Android" نظام التشغيل Android في جهاز افتراضي يُعرف باسم "جهاز Android الافتراضي" (AVD). يحتوي كل جهاز AVD على حزمة برامج Android الكاملة، ويتم تشغيله كما لو كان على جهاز فعلي. يوضّح الشكل 1 بنية Android Emulator العالية المستوى. لمزيد من المعلومات حول المحاكي، يُرجى الاطّلاع على مقالة تشغيل التطبيقات على "محاكي Android".

بنية Android Emulator

الشكل 1. بنية Android Emulator

إنشاء صور AVD

يتضمّن كل جهاز محاكاة افتراضي لنظام التشغيل Android صورة نظام Android تعمل في هذا الجهاز. يتضمّن "مدير الأجهزة الافتراضية لنظام التشغيل Android" بعض صور النظام. ويمكنك إنشاء صور نظام AVD مخصّصة من رمز المصدر وإنشاء محاكاة للأجهزة لتشغيلها.

لإنشاء صورة نظام AVD وتشغيلها، اتّبِع الخطوات التالية:

  1. نزِّل مصدر Android:

    mkdir aosp-android-latest-release; cd aosp-android-latest-release
    repo init -u
    repo sync -j24

إذا كنت تريد إنشاء إصدارات أخرى من Android، يمكنك العثور على أسماء الفروع في مستودع Android العام. وهي تتوافق مع الأسماء الرمزية والعلامات وأرقام الإصدار في Android.

  1. إنشاء صورة نظام AVD هذه العملية هي نفسها عملية إنشاء صورة نظام لجهاز Android. على سبيل المثال، لإنشاء جهاز محاكاة افتراضي يعمل بنظام التشغيل Android على بنية x86‏ 64 بت:

    source ./build/envsetup.sh
    lunch sdk_phone_x86_64
    make -j32
  2. شغِّل صورة نظام المحاكي الافتراضي لنظام التشغيل Android في "محاكي Android":

    emulator

يمكنك الاطّلاع على خيارات بدء التشغيل من سطر الأوامر لمزيد من التفاصيل حول تشغيل المحاكي. يعرض الشكل 2 مثالاً على Android Emulator الذي يشغّل جهازًا افتراضيًا لنظام Android:

محاكي Android Emulator الذي يشغّل جهازًا افتراضيًا يعمل بنظام التشغيل Android (AVD)

الشكل 2. محاكي Android Emulator الذي يشغّل جهازًا افتراضيًا يعمل بنظام التشغيل Android (AVD)

مشاركة صور نظام "الجهاز الافتراضي لنظام Android" ليستخدمها الآخرون مع "استوديو Android"

اتّبِع هذه التعليمات لمشاركة صور نظام AVD مع الآخرين. ويمكنهم استخدام صور نظام المحاكي AVD مع استوديو Android لتطوير التطبيقات واختبارها.

  1. إنشاء حِزم إضافية من sdk وsdk_repo:

    في الإصدار 13 من نظام التشغيل Android والإصدارات الأحدث، استخدِم الأمر emu_img_zip:

    $ make emu_img_zip
    

    يؤدي ذلك إلى إنشاء ملف sdk-repo-linux-system-images-eng.[username]].zip.

    في نظام التشغيل Android 12 والإصدارات الأقدم، استخدِم الأمر sdk_repo:

    $ make -j32 sdk sdk_repo
    

    ينشئ الأمر make sdk sdk_repo ملفَين ضمن aosp-android-latest-release/out/host/linux-x86/sdk/sdk_phone_x86:

    • sdk-repo-linux-system-images-eng.[username].zip
    • repo-sys-img.xml
  2. استضِف الملف sdk-repo-linux-system-images-eng.[username].zip في مكان يمكن للمستخدمين الوصول إليه، واحصل على عنوان URL الخاص به لاستخدامه كـ عنوان URL لصورة نظام AVD.

  3. في نظام التشغيل Android 12 والإصدارات الأقدم، عدِّل repo-sys-img.xml على النحو التالي:

    • استبدِل <sdk:url> بعنوان URL لصورة نظام AVD.
    • راجِع sdk-sys-img-03.xsd للتعرّف على التعديلات الأخرى التي تم إجراؤها على الملف.
    • استضِف repo-sys-img.xml في مكان يمكن للمستخدمين الوصول إليه، واحصل على عنوان URL الخاص به لاستخدامه كـ عنوان URL المخصّص لموقع التحديث.

لاستخدام صورة AVD مخصّصة، اتّبِع الخطوات التالية في "مدير حزمة تطوير البرامج":

  1. أضِف عنوان URL المخصّص لموقع التحديث باعتباره موقع تحديث حزمة SDK.

    يؤدي ذلك إلى إضافة صورة نظام AVD المخصّصة إلى صفحة "صور النظام".

  2. إنشاء جهاز Android افتراضي (AVD) من خلال تنزيل صورة نظام AVD المخصّصة واختيارها

إضافة ميزة استخدام شاشات متعددة

يعمل نظام التشغيل Android 10 على تحسين ميزة "الشاشات المتعددة" لتوفير دعم أفضل لمزيد من حالات الاستخدام، مثل وضع السيارة ووضع سطح المكتب. يتيح محاكي Android أيضًا محاكاة شاشات متعددة. وبالتالي، يمكنك إنشاء بيئة عرض متعددة محددة بدون إعداد الأجهزة الفعلية.

يمكنك إضافة ميزة دعم الشاشات المتعددة إلى جهاز AVD من خلال إجراء التغييرات التالية أو عن طريق اختيار التغييرات من هذه القوائم.

  • أضِف موفّر العرض المتعدد إلى الإصدار عن طريق إضافة الأسطر التالية إلى الملف build/target/product/sdk_phone_x86.mk:

    PRODUCT_ARTIFACT_PATH_REQUIREMENT_WHITELIST := \
        system/lib/libemulator_multidisplay_jni.so \
        system/lib64/libemulator_multidisplay_jni.so \
        system/priv-app/MultiDisplayProvider/MultiDisplayProvider.apk \
    PRODUCT_PACKAGES += MultiDisplayProvider
    
  • فعِّل علامة ميزة "الشاشات المتعددة" من خلال إضافة السطر التالي إلى الملف device/generic/goldfish/data/etc/advancedFeatures.ini:

    MultiDisplay = on
    

يمكنك الاطّلاع على أحدث ميزات المحاكي ومعلومات الإصدار من المصادر التالية: