يمكنك استخدام "محاكي Android" لإنشاء محاكاة لأجهزة Android التي تعمل بصور نظام Android المخصّصة. بالإضافة إلى ذلك، يمكنك إضافة ميزة استخدام الشاشات المتعددة إلى عمليات محاكاة "محاكي Android".
بنية Android Emulator
يشغِّل "محاكي Android" نظام التشغيل Android في جهاز افتراضي يُعرف باسم "جهاز Android الافتراضي" (AVD). يحتوي كل جهاز افتراضي للتطوير على مجموعة برامج Android الكاملة، ويتم تشغيله كما لو كان على جهاز فعلي. يوضّح الشكل 1 البنية الكلية لـ "محاكي Android". لمزيد من المعلومات عن المحاكي، يُرجى الاطّلاع على مقالة تشغيل التطبيقات على "محاكي Android".
الشكل 1: بنية Android Emulator
إنشاء صور AVD
يتضمّن كل جهاز افتراضي Android صورة نظام Android، والتي تعمل في هذا الجهاز الافتراضي. يتضمّن "مدير أجهزة افتراضية Android" بعض صور النظام. ويمكنك إنشاء صور مخصّصة لنظام AVD من رمز المصدر وإنشاء محاكاة للأجهزة لتشغيل هذه الصور.
لإنشاء صورة نظام AVD وتشغيلها:
تنزيل رمز المصدر لنظام التشغيل Android:
mkdir aosp-main; cd aosp-main
repo init -u
repo sync -j24
إذا كنت تريد إنشاء إصدارات أخرى من Android، يمكنك العثور على أسماء فروعها في مستودع Android العلني. ويتم ربطها بالأسماء الرمزية والعلامات وأرقام الإصدارات في Android.
أنشئ صورة نظام AVD. هذه هي العملية نفسها التي يتم بها إنشاء صورة نظام جهاز Android. على سبيل المثال، لإنشاء جهاز افتراضي يعمل بنظام التشغيل Android Emulator (AVD) x86 64 بت:
source ./build/envsetup.sh
lunch sdk_phone_x86_64
make -j32
شغِّل صورة نظام AVD في "محاكي Android":
emulator
اطّلِع على خيارات بدء التشغيل من سطر الأوامر لمزيد من التفاصيل حول تشغيل المحاكي. يعرض الشكل 2 مثالاً على محاكي Android الذي يشغِّل جهاز Android الظاهري:
الشكل 2: محاكي Android الذي يشغِّل جهاز افتراضي Android
مشاركة صور نظام AVD ليستخدمها الآخرون مع "استوديو Android"
اتّبِع هذه التعليمات لمشاركة صور نظام AVD مع الآخرين. ويمكنهم استخدام صور نظام AVD مع استوديو Android لتطوير التطبيقات واختبارها.
أنشئ حِزم
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
استضِف الملف
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)":
أضِف عنوان URL المخصّص لموقع التحديث كأحد مواقع تحديث حزمة SDK.
يؤدي ذلك إلى إضافة صورة نظام AVD المخصّصة إلى صفحة "صور النظام".
أنشئ جهاز افتراضي 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
يمكنك العثور على أحدث ميزات المحاكي ومعلومات الإصدار من المصادر التالية: