دستگاه مجازی اندروید به عنوان یک پلتفرم توسعه

برای استفاده از دستگاه‌های مجازی اندروید (AVD)، شبیه‌ساز اندروید از رابط کاربری گرافیکی (GUI) و رابط خط فرمان (CLI) پشتیبانی می‌کند. شما می‌توانید گردش کار بهینه را برای محیط خود انتخاب کنید.

  • رابط کاربری گرافیکی (GUI) ابزاری ساده و سرراست است که برای اکثر توسعه‌دهندگان و کاربران برنامه‌ها ارائه شده است.
  • شروع شبیه‌ساز از خط فرمان، روشی انعطاف‌پذیر برای کاربران حرفه‌ای و اتوماسیون فراهم می‌کند. به عنوان مثال، برای استفاده از چندین AVD یا راه‌اندازی تست مداوم و ادغام مداوم. برای شروع، به مثال‌ها در ابزارها مراجعه کنید).

یک AVD ماشین AOSP بسازید

فرآیند ساخت AVD مخصوص خودرو AOSP مشابه ساخت ایمیج‌های AVD برای یک گوشی (برای مثال، aosp_car_x86_64) است:

  1. برای تنظیم محیط توسعه و شناسایی یک شاخه، به ابزارهای کنترل منبع مراجعه کنید و سپس دانلود منبع اندروید را بخوانید:
    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
  2. ساخت ایمیج AVD:
    . build/envsetup.sh && lunch sdk_car_x86_64-userdebug && m -j32
  3. اجرای تصویر 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 خودرو:

  1. در صورت نیاز، یک پوشه company و یک پوشه device ایجاد کنید. در این مثال از $ANDROID_BUILD_TOP/device/google_car/avd_car استفاده شده است.
  2. فایل ساخت محصول، avd_car.mk ، را ایجاد کنید که نحوه ساخت AVD را تعریف می‌کند.
  3. یک پوشه دستگاه به avd_car_device ایجاد کنید که در آن BoardConfig.mk و source.properties قرار گیرند.
  4. makefile جدید و گزینه lunch جدید را به AndroidProducts.mk اضافه کنید.
  5. برای ساخت و اجرای AVD جدید avd_car :
    . build/envsetup.sh && lunch acar-userdebug && m -j32 && emulator &
اکنون آماده‌اید تا اکثر ویژگی‌های HMI و برنامه را روی AVD جدید خود نمونه‌سازی کنید.

یک فایل فشرده تصویر AVD را بسته‌بندی کنید

می‌توانید AVD خود را بسته‌بندی کرده و با دیگران به اشتراک بگذارید یا از آن در رایانه دیگری استفاده کنید. برای تولید فایل فشرده تصویر AVD emu_img_zip.mk استفاده کنید:

  1. بعد از اینکه AVD را ساختید، emu_img_zip به عنوان هدف قرار دهید:
    m emu_img_zip
  2. فایل فشرده‌ی ایمیج AVD که با پیشوند sdk-repo-linux-system-images شروع می‌شود، در پوشه‌ای به نام $ANDROID_PRODUCT_OUT ایجاد می‌شود.

ساخت هسته AVD

هسته‌های AVD مشابه سایر هسته‌های اندروید هستند، زیرا همگی ایمیج‌های از پیش ساخته شده هستند. معمولاً می‌توانید از ایمیج‌های از پیش ساخته شده هسته استاندارد گلدفیش، همانطور که در هر نسخه اندروید وجود دارد، استفاده کنید.

برای آزمایش تغییرات هسته:

  1. سری دستورالعمل‌های زیر را اجرا کنید:
    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/
  2. فایل باینری هسته را در کدبیس مطابق با فایل ساخت 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 خود را برای کاربران هدف خود (با استفاده از سیستم افتخاری) به همراه مجوز برای شبیه‌ساز اندروید تعریف کنند. اندروید استودیو وقتی چنین مجوزی را در نظر می‌گیرد، اجماع کاربران را به دست می‌آورد.

برای ایجاد تصویر:

  1. یک فایل فشرده تصویر AVD آماده کنید.
  2. فایل ${ANDROID_PRODUCT_OUT}/sdk-repo-linux-system-images-*.zip را از حالت فشرده خارج کنید.
  3. فایل devices.xml را به پوشه x86_64 اضافه کنید و سپس آن را در یک فایل زیپ فشرده کنید. برای مثال، به صورت oem_avd_img_x86_64.zip .
  4. oem-sys-img2-1.xml را به‌روزرسانی کنید.
  5. نام، اندازه و 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 از شبکه:

  1. فایل زیپ تصویر و فایل‌های XML را روی یک سرور میزبانی کنید.
  2. آدرس اینترنتی (URL) را در اختیار کاربران هدف خود قرار دهید.
  3. ( اختیاری ) محدود کردن دسترسی با نام کاربری و رمز عبور.

روش دیگر، برای سرعت بخشیدن به توسعه، دانلود AVD در یک دایرکتوری محلی است:

  1. فایل‌های XML و تمام مصنوعات مشخص شده در فایل XML را در پوشه‌ای (مثلاً تمام فایل‌های فشرده تصویر AVD) با نام ADDON_DIR ذخیره کنید.
  2. آدرس اینترنتی (URL) را به صورت file://$ADDON_DIR/oem-sys-img2-1.xml مشخص کنید.