يمكنك استخدام Android Emulator لإنشاء محاكاة لأجهزة Android التي تقوم بتشغيل صور نظام Android المخصصة الخاصة بك. يمكنك أيضًا مشاركة صور نظام Android المخصصة الخاصة بك حتى يتمكن الآخرون من محاكاة هذه الصور. بالإضافة إلى ذلك، يمكنك إضافة دعم الشاشات المتعددة إلى محاكيات Android.
بنية محاكي أندرويد
يتيح لك Android Emulator تشغيل محاكاة لأجهزة Android على أجهزة Windows أو macOS أو Linux. يقوم محاكي Android بتشغيل نظام التشغيل Android في جهاز افتراضي يسمى جهاز Android الظاهري (AVD). يحتوي AVD على حزمة برامج Android الكاملة، ويعمل كما لو كان موجودًا على جهاز فعلي. الشكل 1 عبارة عن رسم تخطيطي للبنية عالية المستوى لمحاكي Android. لمزيد من المعلومات حول المحاكي، راجع تشغيل التطبيقات على محاكي Android .
الشكل 1. بنية محاكي Android
بناء صور AVD
يتضمن كل AVD صورة نظام Android، والتي تعمل في AVD هذا. يتضمن AVD Manager بعض صور النظام. ويمكنك إنشاء صور نظام AVD مخصصة من كود المصدر الخاص بك وإنشاء محاكاة للجهاز لتشغيلها.
لإنشاء صورة نظام AVD وتشغيلها:
تحميل المصدر للاندرويد:
mkdir aosp-main; cd aosp-main
repo init -u
repo sync -j24
إذا كنت ترغب في إنشاء إصدارات أخرى من Android، فيمكنك العثور على أسماء فروعها في مستودع Android العام . إنهم يعينون الأسماء الرمزية والعلامات وأرقام البناء لنظام Android .
بناء صورة نظام AVD. هذه هي نفس عملية إنشاء صورة نظام جهاز Android . على سبيل المثال، لإنشاء AVD x86 32 بت:
mkdir aosp-main; cd aosp-main
source ./build/envsetup.sh
lunch sdk_phone_x86
make -j32
إذا كنت تفضل إنشاء AVD x86 64 بت، فقم بتشغيل
lunch
لهدف 64 بت:lunch sdk_phone_x86_64
قم بتشغيل صورة نظام AVD في محاكي Android:
emulator
راجع خيارات بدء تشغيل سطر الأوامر لمزيد من التفاصيل حول تشغيل المحاكي. يوضح الشكل 2 مثالاً لمحاكي Android الذي يقوم بتشغيل AVD.
الشكل 2. محاكي Android يقوم بتشغيل AVD
شارك صور نظام AVD ليستخدمها الآخرون مع Android Studio
اتبع هذه التعليمات لمشاركة صور نظام AVD الخاص بك مع الآخرين. يمكنهم استخدام صور نظام AVD الخاص بك مع Android Studio لتطوير التطبيقات واختبارها.
إنشاء حزم
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-main/out/host/linux-x86/sdk/sdk_phone_x86
:-
sdk-repo-linux-system-images-eng.[username].zip
-
repo-sys-img.xml
-
قم باستضافة الملف
sdk-repo-linux-system-images-eng.[username].zip
في مكان يمكن للمستخدمين الوصول إليه، واحصل على عنوان URL الخاص به لاستخدامه كعنوان URL لصورة نظام AVD .بالنسبة لنظام التشغيل Android 12 والإصدارات الأقدم، قم بتحرير
repo-sys-img.xml
وفقًا لذلك:- قم بتحديث
<sdk:url>
إلى عنوان URL لصورة نظام AVD الخاص بك. - راجع sdk-sys-img-03.xsd للتعرف على التحديثات الأخرى للملف.
- قم باستضافة
repo-sys-img.xml
في مكان ما يمكن للمستخدمين الوصول إليه، واحصل على عنوان URL الخاص به لاستخدامه كعنوان URL لموقع التحديث المخصص .
- قم بتحديث
لاستخدام صورة AVD مخصصة، قم بما يلي في SDK Manager:
قم بإضافة عنوان URL لموقع التحديث المخصص كموقع تحديث SDK .
يؤدي ذلك إلى إضافة صورة نظام AVD المخصصة إلى صفحة صور النظام.
قم بإنشاء 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
قم بتمكين علامة ميزة العرض المتعدد عن طريق إضافة هذا السطر إلى ملف file
device/generic/goldfish/data/etc/advancedFeatures.ini
:MultiDisplay = on
يمكنك العثور على أحدث ميزات المحاكي ومعلومات الإصدار من المصادر التالية: