برای استفاده از دستگاههای مجازی اندروید (AVD)، شبیهساز اندروید از رابط کاربری گرافیکی (GUI) و رابط خط فرمان (CLI) پشتیبانی میکند. شما میتوانید گردش کار بهینه را برای محیط خود انتخاب کنید.
- رابط کاربری گرافیکی (GUI) ابزاری ساده و سرراست است که برای اکثر توسعهدهندگان و کاربران برنامهها ارائه شده است.
- شروع شبیهساز از خط فرمان، روشی انعطافپذیر برای کاربران حرفهای و اتوماسیون فراهم میکند. به عنوان مثال، برای استفاده از چندین AVD یا راهاندازی تست مداوم و ادغام مداوم. برای شروع، به مثالها در ابزارها مراجعه کنید).
یک AVD ماشین AOSP بسازید
فرآیند ساخت AVD مخصوص خودرو AOSP مشابه ساخت ایمیجهای AVD برای یک گوشی (برای مثال، aosp_car_x86_64) است:
- برای تنظیم محیط توسعه و شناسایی یک شاخه، به ابزارهای کنترل منبع مراجعه کنید و سپس دانلود منبع اندروید را بخوانید:
ANDROID_BRANCH="android12L-release"
REPO_URL="https://android.googlesource.com/platform/manifest"
mkdir $ANDROID_BRANCH && cd $ANDROID_BRANCH && repo init -u $REPO_URL -b $ANDROID_BRANCH --partial-clone && repo sync -c -j8 - ساخت ایمیج AVD:
. build/envsetup.sh && lunch sdk_car_x86_64-userdebug && m -j32
- اجرای تصویر AVD (در صورت نیاز، گزینههای راهاندازی خط فرمان اضافی را اضافه کنید):
emulator &
برای مثال:

Figure 1. Android Virtual Emulator screen
نکاتی در مورد این فرآیند:
- از آنجا که فرآیند ساخت همان فرآیندی است که برای ساخت اندروید برای یک دستگاه فیزیکی لازم است، مدتی را برای دانلود منبع و سپس ساخت آن اختصاص دهید.
- برای کار روی شاخههای دیگر، متغیر
$ANDROID_BRANCHرا روی شاخه/برچسب دیگری تنظیم کنید. - ایمیجهای AVD، مانند
system.img، در$ANDROID_PRODUCT_OUTساخته میشوند. برای کسب اطلاعات بیشتر در مورد ایمیجهای کلیدی، به دایرکتوری سیستم AVD مراجعه کنید. - برای آشنایی با نحوهی استفاده از فایلهای باینری پیشساختهی شبیهساز در درخت اندروید شما برای اجرای شبیهساز، به فایل README مراجعه کنید.
ایجاد یک AVD خودرو
اضافه کردن یک AVD ماشین جدید تقریباً مشابه اضافه کردن یک دستگاه جدید است. برای مثال، 1660554 یک AVD جدید avd_car ایجاد میکند.
برای ایجاد یک AVD خودرو:
- در صورت نیاز، یک پوشه company و یک پوشه device ایجاد کنید. در این مثال از
$ANDROID_BUILD_TOP/device/google_car/avd_carاستفاده شده است. - فایل ساخت محصول،
avd_car.mk، را ایجاد کنید که نحوه ساخت AVD را تعریف میکند. - یک پوشه دستگاه به
avd_car_deviceایجاد کنید که در آنBoardConfig.mkوsource.propertiesقرار گیرند. -
makefileجدید و گزینهlunchجدید را بهAndroidProducts.mkاضافه کنید. - برای ساخت و اجرای AVD جدید
avd_car:. build/envsetup.sh && lunch acar-userdebug && m -j32 && emulator &
یک فایل فشرده تصویر AVD را بستهبندی کنید
میتوانید AVD خود را بستهبندی کرده و با دیگران به اشتراک بگذارید یا از آن در رایانه دیگری استفاده کنید. برای تولید فایل فشرده تصویر AVD emu_img_zip.mk استفاده کنید:
- بعد از اینکه AVD را ساختید،
emu_img_zipبه عنوان هدف قرار دهید:m emu_img_zip
- فایل فشردهی ایمیج AVD که با پیشوند
sdk-repo-linux-system-imagesشروع میشود، در پوشهای به نام$ANDROID_PRODUCT_OUTایجاد میشود.
ساخت هسته AVD
هستههای AVD مشابه سایر هستههای اندروید هستند، زیرا همگی ایمیجهای از پیش ساخته شده هستند. معمولاً میتوانید از ایمیجهای از پیش ساخته شده هسته استاندارد گلدفیش، همانطور که در هر نسخه اندروید وجود دارد، استفاده کنید.
برای آزمایش تغییرات هسته:
- سری دستورالعملهای زیر را اجرا کنید:
mkdir goldfish-kernel-54 cd goldfish-kernel-54 repo init -u https://android.googlesource.com/kernel/manifest -b common-android11-5.4 repo sync BUILD_CONFIG=common/build.config.gki.x86_64 build/build.sh BUILD_CONFIG=common-modules/virtual-device/build.config.goldfish.x86_64 build/build.sh ls -l ./out/android11-5.4/dist/
- فایل باینری هسته را در کدبیس مطابق با فایل ساخت AVD جایگزین کنید. برای مثال،
device/generic/goldfish/board/emu64x/details.mkشاملdevice/generic/goldfish/board/kernel/x86_64.mkمیشود.
کد و پیکربندی هسته به شرح زیر است:
| مورد | ارزش |
|---|---|
| شعبه | common-android11-5.4 (مورد استفاده در اندروید ۱۱) |
| مانیفست | kernel/manifest/common-android11-5.4 |
| ماژولهای مشترک/دستگاه مجازی | kernel/common-modules/virtual-device/android11-5.4 |
| هسته | kernel/common/android11-5.4 |
ایجاد نمایه دستگاه جدید
برای اینکه کاربران بتوانند یک AVD خاص را در Android Studio AVD Manager ایجاد کنند، به بخش ایجاد و مدیریت دستگاههای مجازی مراجعه کنید. سازندگان دستگاه میتوانند مشخصات سختافزاری خود، مانند اندازه صفحه نمایش و DPI را با استفاده از فایل devices.xml موجود در تصویر AVD تعریف کنند.
- برای مثال، به پروفایلهای Automotive Device در
automotive.xmlمراجعه کنید. - برای توسعه یا نمونهسازی HMI، میتوان چندین دستگاه را به فایل مربوط به یک تصویر AVD اضافه کرد.
- فایل را در فایل زیپ ایمیج OEM AVD در پوشه
[ABI]قرار دهید. برای مثال، به صورتx86_64. - Device makers can also Create an emulator skin . For instance, to define additional hardware buttons for higher fidelity UX. This isn't only useful for developer workflows, but also for other tasks such as UX research and review.
فایل XML تصویر AVD را ایجاد کنید
سازندگان دستگاه میتوانند یک فایل AVD Image XML برای اندروید استودیو ایجاد کنند تا آن را دانلود کند.
- برای مثال، به فایل XML تصویر AAOS AVD،
sys-img2-1.xmlمراجعه کنید. - سازندگان دستگاه میتوانند قرارداد مجوز OEM AVD خود را برای کاربران هدف خود (با استفاده از سیستم افتخاری) به همراه مجوز برای شبیهساز اندروید تعریف کنند. اندروید استودیو وقتی چنین مجوزی را در نظر میگیرد، اجماع کاربران را به دست میآورد.
برای ایجاد تصویر:
- یک فایل فشرده تصویر AVD آماده کنید.
- فایل
${ANDROID_PRODUCT_OUT}/sdk-repo-linux-system-images-*.zipرا از حالت فشرده خارج کنید. - فایل
devices.xmlرا به پوشهx86_64اضافه کنید و سپس آن را در یک فایل زیپ فشرده کنید. برای مثال، به صورتoem_avd_img_x86_64.zip. -
oem-sys-img2-1.xmlرا بهروزرسانی کنید. - نام، اندازه و shasum فایل زیپ را بهروزرسانی کنید (نمونه فایلهای XML در
toolsارائه شدهاند).
برای مثال، برای میزبانی AVD در فضای ابری گوگل، به ایجاد مخازن ذخیرهسازی مراجعه کنید.
برای آپلود و در دسترس عموم قرار دادن AVD، به عمومیسازی دادهها مراجعه کنید:
BUCKET_NAME="aaos-avd" gsutil mb gs://$BUCKET_NAME gsutil cp oem_avd_img_x86_64.zip gs://$BUCKET_NAME gsutil cp oem-sys-img2-1.xml gs://$BUCKET_NAME gsutil iam ch allUsers:objectViewer gs://$BUCKET_NAME
فرمت URL افزونه SDK ایمیج AVD به صورت زیر است: https://storage.googleapis.com/$BUCKET_NAME/oem-sys-img2-1.xml . برای مثال، اگر BUCKET_NAME برابر با aaos-avd باشد، URL به صورت زیر خواهد بود: https://storage.googleapis.com/aaos-avd/oem-sys-img2-1.xml .
اشتراکگذاری یک تصویر AVD با کاربران اندروید استودیو
برای اینکه کاربران شما بتوانند تصاویر AVD را دانلود کرده و از AVD شما توسط اندروید استودیو استفاده کنند، میتوانید یک فایل XML افزونه SDK ارائه دهید. برای جزئیات بیشتر، به بهروزرسانی ابزارهای IDE و SDK مراجعه کنید.
برای دانلود AVD از شبکه:
- فایل زیپ تصویر و فایلهای XML را روی یک سرور میزبانی کنید.
- آدرس اینترنتی (URL) را در اختیار کاربران هدف خود قرار دهید.
- ( اختیاری ) محدود کردن دسترسی با نام کاربری و رمز عبور.
روش دیگر، برای سرعت بخشیدن به توسعه، دانلود AVD در یک دایرکتوری محلی است:
- فایلهای XML و تمام مصنوعات مشخص شده در فایل XML را در پوشهای (مثلاً تمام فایلهای فشرده تصویر AVD) با نام
ADDON_DIRذخیره کنید. - آدرس اینترنتی (URL) را به صورت
file://$ADDON_DIR/oem-sys-img2-1.xmlمشخص کنید.