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

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

بنية Android Emulator

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

بنية Android Emulator

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

إنشاء صور AVD

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

لإنشاء صورة نظام AVD وتشغيلها:

  1. تنزيل رمز المصدر لنظام التشغيل Android:

    mkdir aosp-main; cd aosp-main
    repo init -u
    repo sync -j24
    

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

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

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

    emulator
    

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

محاكي Android الذي يشغِّل جهاز افتراضي Android

الشكل 2: محاكي Android الذي يشغِّل جهاز افتراضي Android

مشاركة صور نظام AVD ليستخدمها الآخرون مع "استوديو 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-main/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)":

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

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

  2. أنشئ جهاز افتراضي Android من خلال تنزيل صورة نظام 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
    

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