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

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

هندسة محاكي الأندرويد

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

هندسة محاكي الأندرويد

الشكل 1. هندسة محاكي الأندرويد

بناء صور AVD

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

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

  1. قم بتنزيل مصدر Android:

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

    إذا كنت ترغب في إنشاء إصدارات أخرى من Android ، فيمكنك العثور على أسماء الفروع الخاصة بهم في مستودع Android العام . يتم تعيينهم إلى Android Codenames و Tags و Build Numbers .

  2. بناء صورة نظام AVD. هذه هي نفس عملية إنشاء صورة لنظام جهاز Android . على سبيل المثال ، لإنشاء ملف بتنسيق x86 32 بت AVD:

    mkdir aosp-master; cd aosp-master
    source ./build/envsetup.sh
    lunch sdk_phone_x86
    make -j32
    

    إذا كنت تفضل إنشاء ملف x86 64 بت AVD ، فقم بتشغيل lunch لهدف 64 بت:

    lunch sdk_phone_x86_64
    
  3. قم بتشغيل صورة نظام AVD في محاكي Android:

    emulator
    

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

يعمل محاكي Android على AVD

الشكل 2. محاكي Android يقوم بتشغيل AVD

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

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

  1. قم بعمل حزم sdk و sdk_repo إضافية:

    $ make -j32 sdk sdk_repo
    

    يؤدي هذا إلى إنشاء ملفين ضمن aosp-master/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. قم بتحرير repo-sys-img.xml وفقًا لذلك:

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

لاستخدام صورة AVD مخصصة ، قم بما يلي في SDK Manager:

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

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

  2. قم بإنشاء ملف AVD عن طريق تنزيل واختيار صورة نظام AVD المخصصة.

إضافة دعم متعدد العرض

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

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

  • أضف موفر العرض المتعدد إلى الإصدار عن طريق إضافة هذه الأسطر إلى ملف 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
    

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