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

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

هندسة Android Emulator

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

بنية Android Emulator

الشكل 1: هندسة Android Emulator

إنشاء صور AVD

يتضمّن كل جهاز AVD صورة نظام 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. على سبيل المثال، لإنشاء جهاز AVD بنظام x86 64 بت:

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

    emulator

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

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

الشكل 2: Android Emulator يشغّل جهاز AVD

مشاركة صور نظام AVD ليستخدمها الآخرون مع استوديو Android

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

  1. أنشِئ حزمتَي sdk وsdk_repo إضافيتَين:

    بالنسبة إلى Android 13 والإصدارات الأحدث، استخدِم الأمر 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 مخصّصة، اتّبِع الخطوات التالية في SDK Manager:

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

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

  2. أنشِئ جهاز AVD عن طريق تنزيل صورة نظام AVD المخصّصة واختيارها.

إضافة ميزة العرض على شاشات متعددة

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

يمكنك إضافة ميزة العرض على شاشات متعددة إلى جهاز 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
    

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