اعتبارًا من 27 آذار (مارس) 2025، ننصحك باستخدام android-latest-release
بدلاً من aosp-main
لإنشاء AOSP والمساهمة فيه. لمزيد من المعلومات، يُرجى الاطّلاع على التغييرات في AOSP.
استخدام الأجهزة الافتراضية في "محاكي Android"
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
يمكنك استخدام "محاكي Android" لإنشاء محاكاة لأجهزة Android
التي تعمل بصور نظام Android المخصّصة. بالإضافة إلى ذلك، يمكنك إضافة ميزة استخدام الشاشات المتعددة إلى عمليات محاكاة "محاكي Android".
بنية Android Emulator
يشغِّل "محاكي Android" نظام التشغيل Android
في جهاز افتراضي يُعرف باسم "جهاز Android الافتراضي" (AVD). يحتوي كل جهاز افتراضي (AVD)
على مجموعة برامج Android الكاملة، ويتم تشغيله كما لو كان
على جهاز فعلي. يوضّح الشكل 1 البنية الكلية لـ "محاكي Android". لمزيد من المعلومات عن المحاكي، يُرجى الاطّلاع على مقالة
تشغيل التطبيقات على "محاكي Android".
الشكل 1: بنية Android Emulator
إنشاء صور AVD
يتضمّن كل جهاز افتراضي Android صورة نظام Android، والتي تعمل في
هذا الجهاز الافتراضي. يتضمّن "مدير أجهزة افتراضية Android" بعض صور النظام. ويمكنك إنشاء صور مخصّصة
لنظام AVD من رمز المصدر وإنشاء محاكاة للأجهزة لتشغيل
هذه الصور.
لإنشاء صورة نظام AVD وتشغيلها:
نزِّل رمز المصدر لنظام التشغيل Android:
mkdir aosp-android-latest-release; cd aosp-android-latest-release
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 الذي يشغِّل جهاز افتراضي
مشاركة صور نظام AVD ليتمكّن الآخرون من استخدامها مع "استوديو Android"
اتّبِع هذه التعليمات لمشاركة صور نظام AVD مع الآخرين. ويمكنهم استخدام صور نظام AVD مع Android
Studio لتطوير التطبيقات واختبارها.
أنشئ حِزم 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-android-latest-release/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" أيضًا محاكاة الشاشات المتعددة. وبالتالي، يمكنك إنشاء بيئة محدّدة
تتضمّن عدة شاشات بدون إعداد الأجهزة الفعلية.
يمكنك إضافة ميزة التوافق مع شاشات متعددة إلى جهاز افتراضي للاندرويد من خلال إجراء التغييرات التالية، أو
من خلال اختيار العناصر المفضّلة من
هذه المراجعات.
أضِف موفِّر الشاشة المتعددة إلى الإصدار عن طريق إضافة هذه الأسطر إلى الملف
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
يمكنك العثور على أحدث ميزات المحاكي ومعلومات الإصدار من
المصادر التالية:
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","easyToUnderstand","thumb-up"],["ساعَدني المحتوى في حلّ مشكلتي.","solvedMyProblem","thumb-up"],["غير ذلك","otherUp","thumb-up"]],[["لا يحتوي على المعلومات التي أحتاج إليها.","missingTheInformationINeed","thumb-down"],["الخطوات معقدة للغاية / كثيرة جدًا.","tooComplicatedTooManySteps","thumb-down"],["المحتوى قديم.","outOfDate","thumb-down"],["ثمة مشكلة في الترجمة.","translationIssue","thumb-down"],["مشكلة في العيّنات / التعليمات البرمجية","samplesCodeIssue","thumb-down"],["غير ذلك","otherDown","thumb-down"]],["تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],null,["# Use Android Emulator virtual devices\n\nYou can use Android Emulator to create emulations of Android devices\nthat run your own custom Android system images. In\naddition, you can add multi-display support to Android Emulator\nemulations.\n\nAndroid Emulator architecture\n-----------------------------\n\nAndroid Emulator runs the Android operating\nsystem in a virtual machine called an Android Virtual Device (AVD). Each AVD\ncontains the full\n[Android software stack](/docs/core/architecture), and it runs as if it\nwere on a physical device. Figure 1 illustrates Android Emulator's\nhigh-level architecture. For more information about the emulator, see\n[Run apps on the Android Emulator](https://developer.android.com/studio/run/emulator).\n\n**Figure 1.** Android Emulator architecture.\n\nBuild AVD images\n----------------\n\nEach AVD includes an Android system image, which runs in\nthat AVD. The AVD Manager includes some system images. And you can build custom\nAVD system images from your source code and create device emulations to run\nthem.\n| **Note:** You need to [establish a build environment](/docs/setup/start/initializing) before building AVD system images.\n\nTo build and run an AVD system image:\n\n1. Download the Android source:\n\n mkdir aosp-android-latest-release; cd aosp-android-latest-release\n repo init -u\n repo sync -j24\n\nIf you want to build other Android versions, you can find their branch names in\nthe [public Android repository](https://android.googlesource.com/platform/manifest/+refs).\nThey map to\n[Android Codenames, Tags, and Build Numbers](/docs/setup/reference/build-numbers#source-code-tags-and-builds).\n\n1. Build an AVD system image. This is the same process as [building an\n Android](/docs/setup/build/building) device system\n image. For example, to build a x86 64-bit AVD:\n\n source ./build/envsetup.sh\n lunch sdk_phone_x86_64\n make -j32\n\n2. Run the AVD system image in the Android Emulator:\n\n emulator\n\nSee\n[Command-line startup options](https://developer.android.com/studio/run/emulator-commandline#startup-options)\nfor more details about running the emulator. Figure 2 shows an example of the\nAndroid Emulator running an AVD:\n\n**Figure 2.** Android Emulator running an AVD.\n\nShare AVD system images for others to use with Android Studio\n-------------------------------------------------------------\n\nFollow these instructions to share your AVD system images with others. They can\nuse your AVD system images with [Android\nStudio](https://developer.android.com/studio) to develop and test apps.\n\n1. Make additional `sdk` and `sdk_repo` packages:\n\n For Android 13 and higher, use the `emu_img_zip`\n command: \n\n $ make emu_img_zip\n\n This generates an `sdk-repo-linux-system-images-eng.[username]].zip` file.\n\n For Android 12 and lower, use the `sdk_repo`\n command: \n\n $ make -j32 sdk sdk_repo\n\n The `make sdk sdk_repo` command creates two files under\n `aosp-android-latest-release/out/host/linux-x86/sdk/sdk_phone_x86`:\n - `sdk-repo-linux-system-images-eng.[username].zip`\n - `repo-sys-img.xml`\n2. Host the file `sdk-repo-linux-system-images-eng.[username].zip`\n somewhere accessible to your users, and get its URL to use as the **AVD\n System Image URL**.\n\n3. For Android 12 and lower, edit `repo-sys-img.xml` accordingly:\n\n - Update `\u003csdk:url\u003e` to your **AVD System Image URL**.\n - See [sdk-sys-img-03.xsd](https://android.googlesource.com/platform/prebuilts/devtools/+/refs/heads/android16-release/repository/sdk-sys-img-03.xsd) to learn about other updates to the file.\n - Host `repo-sys-img.xml` somewhere accessible to your users, and get its URL to use as the **Custom Update Site URL**.\n\nTo use a custom AVD image, do the following in the SDK Manager:\n\n1. Add the **Custom Update Site URL** as an\n [SDK Update Site](https://developer.android.com/studio/intro/update#adding-sites).\n\n This adds your custom AVD system image to the System Images page.\n2. [Create an AVD](https://developer.android.com/studio/run/managing-avds#createavd)\n by downloading and selecting the custom AVD system image.\n\nAdd multi-display support\n-------------------------\n\nAndroid 10\n[enhances multi-display](/docs/core/display/multi_display)\nto better support more use cases, such as auto and desktop mode. Android\nEmulator also supports multi-display emulation. So you can create a specific\nmulti-display environment without setting up the real hardware.\n\nYou can add multi-display support to an AVD by making the following changes, or\nby cherry picking from\n[these CLs](https://android-review.googlesource.com/q/topic:%22AVD+Multi-display%22+(status:open%20OR%20status:merged)).\n\n- Add the multi-display provider to the build by adding these lines to file\n `build/target/product/sdk_phone_x86.mk`:\n\n PRODUCT_ARTIFACT_PATH_REQUIREMENT_WHITELIST := \\\n system/lib/libemulator_multidisplay_jni.so \\\n system/lib64/libemulator_multidisplay_jni.so \\\n system/priv-app/MultiDisplayProvider/MultiDisplayProvider.apk \\\n PRODUCT_PACKAGES += MultiDisplayProvider\n\n- Enable the Multi-Display feature flag by adding this line to file\n `device/generic/goldfish/data/etc/advancedFeatures.ini`:\n\n MultiDisplay = on\n\nYou can find the latest emulator features and release information from\nthe following sources:\n\n- [Run apps on Android Emulator](https://developer.android.com/studio/run/emulator)\n- [Android Emulator release notes](https://developer.android.com/studio/releases/emulator)"]]