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

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

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

AOSP Car AVD را با استفاده از پیش ساخته راه اندازی کنید

برای راه‌اندازی و آزمایش سریع با استفاده از AOSP Car AVD از پیش ساخته شده، از یک اسکریپت منبع باز برای دانلود و راه‌اندازی ساخت شبیه‌ساز از ci.android.com استفاده کنید. این اسکریپت روی macOS و Linux تست شده است.

برای استفاده از این اسکریپت به Curl نیاز دارید.

برای اجرای اسکریپت:

  1. با فرض اینکه از launch_emu.sh به عنوان نام فایل محلی استفاده می کنید، محتویات اسکریپت launch_emu.sh را در فایل محلی خود کپی کنید.
  2. اسکریپت محلی خود را قابل اجرا کنید. برای مثال، chmod +x ./launch_emu.sh را اجرا کنید.
  3. با اجرای اسکریپت با ./launch_emu.sh -h گزینه های موجود را بررسی کنید.
  4. در ci.android.com ، به شاخه aosp-main-throttled بروید و یک بیلد اخیر را انتخاب کنید که در آن sdk_car_x86_64 سبز است. به عنوان مثال، 11370359. اگر اطلاعات ساخت را نمی بینید، از حساب Google خود خارج شوید و دوباره امتحان کنید.
  5. فایل های باینری مربوط به شبیه ساز را با شناسه ساخت دانلود و نصب کنید. برای مثال، ./launch_emu.sh -i -a 11370359 .
  6. پس از این، می توانید از ./launch_emu.sh برای راه اندازی شبیه ساز دانلود شده و نصب شده استفاده کنید (از گزینه های -i یا -a استفاده نکنید).
  7. برای دانلود و نصب یک شناسه ساخت دیگر، ./launch_emu.sh -c را اجرا کنید تا فضای کاری خود را تمیز کنید و سپس مرحله 4 و مرحله 5 را در بالا تکرار کنید.

برای مشخص کردن گزینه‌های گزینه‌های راه‌اندازی خط فرمان شبیه‌ساز اندروید هنگام راه‌اندازی شبیه‌ساز، از گزینه -v استفاده کنید. به عنوان مثال:

  ./launch_emu.sh -v “-cores 4 -memory 6144 -no-snapshot"

یک AOSP Car AVD بسازید

فرآیند ساخت AOSP Car AVD مشابه ساخت تصاویر 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 &

    مثلا:

    شکل 1. صفحه نمایش شبیه ساز مجازی اندروید

    نکاتی در مورد این فرآیند:

    • از آنجایی که فرآیند ساخت همان چیزی است که برای ساخت اندروید برای یک دستگاه فیزیکی لازم است، کمی زمان بگذارید تا منبع را دانلود کنید و سپس آن را بسازید.
    • برای کار روی شاخه‌های دیگر، $ANDROID_BRANCH را روی شاخه/برچسب دیگری تنظیم کنید.
    • تصاویر AVD، مانند system.img ، در $ANDROID_PRODUCT_OUT ساخته شده‌اند. برای کسب اطلاعات بیشتر در مورد تصاویر کلیدی، دایرکتوری سیستم AVD را ببینید.
    • برای آشنایی با نحوه استفاده از باینری های شبیه ساز از پیش ساخته شده در درخت اندروید شما برای اجرای شبیه ساز، به فایل README مراجعه کنید.

یک ماشین AVD ایجاد کنید

افزودن یک ماشین AVD جدید تقریباً مشابه افزودن یک دستگاه جدید است. به عنوان مثال، 1660554 یک avd_car AVD جدید ایجاد می کند.

برای ایجاد یک ماشین AVD:

  1. در صورت نیاز یک شرکت و یک پوشه دستگاه ایجاد کنید. این مثال از $ANDROID_BUILD_TOP/device/google_car/avd_car استفاده می‌کند.
  2. فایل makefile محصول، avd_car.mk را ایجاد کنید، که نحوه ساخت AVD را تعریف می کند.
  3. یک پوشه دستگاه، avd_car_device ایجاد کنید، که در آن BoardConfig.mk و source.properties باشد.
  4. makefile جدید و انتخاب lunch جدید را به AndroidProducts.mk اضافه کنید.
  5. برای ساخت و اجرای avd_car AVD جدید:
    . 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. باینری هسته را در پایگاه کد مطابق با فایل makefile AVD جایگزین کنید. برای مثال، x86_64-vendor.mk شامل x86_64-kernel.mk است.

کد و پیکربندی هسته به صورت زیر است:

مورد ارزش
شاخه common-android11-5.4 (مورد استفاده در اندروید 11)
آشکار 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.xml ببینید.
  • برای توسعه HMI یا نمونه سازی، می توان چندین دستگاه را برای یک تصویر AVD به فایل اضافه کرد.
  • فایل را در فایل فشرده تصویر OEM AVD در پوشه [ABI] قرار دهید. به عنوان مثال، به عنوان x86_64 .
  • سازندگان دستگاه همچنین می توانند یک پوسته شبیه ساز ایجاد کنند . به عنوان مثال، برای تعریف دکمه های سخت افزاری اضافی برای UX با وفاداری بالاتر. این نه تنها برای گردش کار توسعه دهندگان مفید است، بلکه برای کارهای دیگری مانند تحقیق و بررسی UX نیز مفید است.

فایل XML تصویر AVD را ایجاد کنید

سازندگان دستگاه می توانند یک فایل AVD Image XML برای Android Studio ایجاد کنند تا آن را دانلود کنند.

  • برای مثال، فایل 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 در Google Cloud Storage ، به ایجاد سطل های ذخیره سازی مراجعه کنید.

برای آپلود و در دسترس قرار دادن 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 باشد، نشانی اینترنتی این است: https://storage.googleapis.com/aaos-avd/oem-sys-img2-1.xml .

یک تصویر AVD را با کاربران Android Studio به اشتراک بگذارید

برای اینکه کاربران شما بتوانند تصاویر AVD را دانلود کنند و از AVD خود توسط Android Studio استفاده کنند، می توانید یک فایل 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 مشخص کنید.