نمای کلی پروژه‌ها و گردش‌های کاری Soong

پروژه در Android Studio for Platform (ASfP) شامل همه چیزهایی است که فضای کاری شما را برای پایگاه کد AOSP تعریف می‌کند، از کد منبع و دارایی‌ها گرفته تا کد آزمایش و پیکربندی‌های ساخت Soong.

‫ASfP که بر مدل فضای کاری IntelliJ ساخته شده است، پروژه‌های پلاتفرم بزرگ را می‌سازد و مدل پروژه شما را از عکس‌های آنی ذخیره‌شده در حافظه نهان در هنگام راه‌اندازی بازیابی می‌کند. محتوای داخل دایرکتوری out/ و فایل‌های gen تولیدشده از محدوده جستجوی پروژه مستثنا می‌شوند تا پیمایش فایل و نماد سریع بماند.

پیکربندی پروژه (.asfp-project)

فایل YAML .asfp-project که در ریشه دایرکتوری پروژه شما قرار دارد، پیکربندی پروژه ASfP را کنترل می‌کند. این فایل مشخص می‌کند که کدام دایرکتوری‌ها، مدول‌های Soong، زبان‌ها، و پرچم‌های ساخت در فضای کاری شما گنجانده شده‌اند.

هرزمان بخواهید می‌توانید پیکربندی پروژه‌تان را بااستفاده از هریک از گزینه‌های زیر باز کنید:

  • ASfP > Project > Open Config را از منو اصلی انتخاب کنید.
  • روی .asfp-project در ریشه پنجره ابزار پروژه دوکلیک کنید.
  • در نوارابزار پنجره ابزار Soong، روی باز کردن پیکربندی کلیک کنید.

پس‌از ویرایش .asfp-project، همگام‌سازی پروژه را اجرا کنید تا تغییراتتان اعمال شود.

الگوهای پروژه قابل‌هم‌رسانی (صادر کردن و وارد کردن)

تیم‌هایی که روی زیرسیستم یکسانی کار می‌کنند (مثل SystemUI،‏ Settings،‏ SurfaceFlinger، یا Automotive) می‌توانند پیکربندی استاندارد .asfp-project را به‌عنوان الگو هم‌رسانی کنند:

  • صادر کردن به الگو: روی برگه ویرایشگر .asfp-project کلیک راست کنید یا ASfP > Project > Export Config to Template را انتخاب کنید تا فایل الگوی قابل‌هم‌رسانی ذخیره شود.

    صادر کردن پیکربندی پروژه ASfP به الگوی قابل‌هم‌رسانی

  • وارد کردن از الگو: هنگام ایجاد پروژه جدید در جادوگر راه‌اندازی پروژه، وارد کردن از الگو را انتخاب کنید و فایل .asfp-project YAML مشترک را برای پیش‌پر کردن دایرکتوری‌ها، واحدها، و تنظیمات ساخت انتخاب کنید.

پارامترهای پیکربندی

فایل .asfp-project از پارامترهای زیر پشتیبانی می‌کند:

repo

الزامی: مسیر مطلق به ریشه بررسی مخزن پلاتفرم Android شما.

repo: /path/to/aosp

lunch

الزامی: هدف ناهار همراه با پروژه شما. برای همه کنش‌های ساخت، همگام‌سازی، و استقرار Soong استفاده می‌شود.

lunch: aosp_cf_x86_64_phone-aosp_current-userdebug

directories

اختیاری: دایرکتوری‌هایی که باید در پروژه‌تان گنجانده یا از آن حذف شوند (نسبت به repo ریشه). دایرکتوری‌های پیوند نمادین و ریشه‌های منبع پشتیبانی می‌شوند.

directories:
  include:
    -   frameworks/base
    -   packages/apps/Settings
  exclude:
    -   vendor
    -   out/soong

modules

اختیاری: ماژول‌های Soong خاصی که باید در پروژه شما گنجانده یا از آن حذف شوند. با directories کار می‌کند. از هر دو نام کامل و خلاصه ماژول پشتیبانی می‌شود.

modules:
  include:
    -   SystemUI
    -   frameworks/base/services/core/java:services
  exclude:
    -   UnusedModule

test_sources

اختیاری: مسیرهای نسبی برای علامت‌گذاری به‌عنوان ریشه‌های منبع آزمایشی وقتی که اکتشافی‌های منبع آزمایشی خودکار ASfP نیاز به لغو دستی دارند.

test_sources:
  -   cts/tests/tests/example
  -   tests/mytests

other_languages

اختیاری: پشتیبانی از Java،‏ Kotlin، و Android.bp به‌طور پیش‌فرض فعال است. برای پشتیبانی از زبان C و C++‎،‏ cpp و برای پشتیبانی از زبان Rust،‏ rust را اضافه کنید:

other_languages:
  -   cpp
  -   rust

build_config

اختیاری: پرچم‌های سفارشی یا متغیرهای محیطی که به فراخوانی‌های ساخت Soong که توسط IDE راه‌اندازی شده‌اند (ازجمله همگام‌سازی‌ها، ساخت‌های حاشیه، و پیکربندی‌های اجرا) ارسال می‌شوند:

build_config:
  flags:
    -   -j64
  env:
    SOONG_PARTIAL_COMPILE: true
    SOONG_ALLOW_MISSING_DEPENDENCIES: true

حالت‌های همگام‌سازی و پنجره ابزار Soong

‫ASfP بسته به نیازهای گردش کارتان، روش‌های متعددی برای همگام‌سازی پروژه IDE با بررسی AOSP ارائه می‌دهد. از منو ASfP > همگام‌سازی یا پنجره ابزار Soong به این کنش‌ها دسترسی پیدا کنید:

  • همگام‌سازی پروژه: فهرست‌های راهنما و ماژول‌های پیکربندی‌شده شما را تجزیه‌وتحلیل می‌کند و نمایه‌سازی و وابستگی‌های IDE را به‌روز می‌کند.
  • همگام‌سازی جزئی: فقط زیرمجموعه هدف از ماژول‌ها یا دایرکتوری‌ها را همگام‌سازی می‌کند، که باعث صرفه‌جویی در زمان هنگام کار در یک ناحیه محلی از درخت می‌شود.
  • همگام‌سازی بدون ساخت: ساختار پروژه IDE و ریشه‌های منبع را بدون اجرای مرحله ساخت Soong بازآوری می‌کند. این ویژگی زمانی مفید است که فایل‌های منبع را اضافه یا جابه‌جا کرده باشید یا قبلاً از پایانه ساخته باشید.
  • همگام‌سازی و ساخت کامل: همگام‌سازی پروژه را با ساخت کامل Soong در یک مرحله ترکیب می‌کند.

پنجره ابزار Soong (نمایش > پنجره‌های ابزار > Soong) نشانگرهای وضعیت هم‌زمان را برای هر گره تکلیف همگام‌سازی، دکمه‌های ساخت دسترسی سریع، و اجرای فرمان Soong نمایش می‌دهد.


ساخت، استقرار، و پیمایش Android.bp در ویرایشگر

‫ASfP پشتیبانی ویرایشگر یکپارچه را برای فایل‌های Android.bp ارائه می‌دهد:

ساختن، اجرا کردن، و اشکال‌زدایی کردن هدف‌ها از حاشیه

هر فایل Android.bp را در پروژه‌تان باز کنید تا هدف‌ها را از دو نماد کنار صفحه بسازید یا راه‌اندازی کنید:

  • نماد ساخت (همه واحدهای نام‌گذاری‌شده): در کنار name: در هر واحد نام‌گذاری‌شده (cc_library_shared، java_library، rust_binary، android_app، و هدف‌های آزمایشی) برای ساختن آن هدف Soong (ساختن «<واحد>») نشان داده می‌شود.
  • نماد «اجرا» یا «اشکال‌زدایی» (*_test، *_test_host، و android_app): روی اجرا در کنار ماژول آزمایشی یا اعلان android_app کلیک کنید تا ماژول را اجرا یا اشکال‌زدایی کنید. android_test واحد ازطریق atest اشکال‌زدایی می‌شود، و cc_test* و rust_test* واحد تحت LLDB داخلی راه‌اندازی می‌شود.

ساخت، اجرا، و اشکال‌زدایی کردن ماژول‌ها از نمادهای حاشیه Android.bp

پیکربندی‌های اجرای سریع و استقرار بافتاری

برای ماژول‌های قابل‌استقرار در فایل‌های Android.bp، می‌توانید پیکربندی‌های اجرای Soong Deploy زمینه‌ای را از حاشیه یا منوِ بافت کلیک راست با ویژگی‌های زیر ایجاد و راه‌اندازی کنید:

  • روش‌های پیاده‌سازی: پیاده‌سازی بااستفاده از adb، دستورگان‌های پوسته سفارشی، adevice، یا flashall.
  • قلاب‌های ساخت Soong پیش‌از اجرا: قبل‌از استقرار در دستگاه متصل یا دستگاه مجازی Cuttlefish، واحد هدف Soong را به‌طور خودکار بسازید.

انتخاب پیکربندی‌های اجرای Adevice یا Flashall در ASfP

پریدن بین کد منبع و Android.bp

از هر فایل منبع یا دایرکتوری در پنجره ابزار پروژه، برگه ویرایشگر، یا منو بافت ویرایشگر، کلیک راست کنید و باز کردن فایل Android.bp مربوطه را انتخاب کنید. ‫ASfP اعلامیه واحد Android.bp را که آن فایل را کامپایل می‌کند پیدا و برجسته می‌کند، بلوک‌های defaults، الگوهای جانشین srcs، و پیوندهای نمادین را حل می‌کند.

کنش منو زمینه‌ای «باز کردن فایل Android.bp متناظر»

مستندات هوش ویرایشگر و نکته‌ابزار Android.bp

  • پیمایش بین فایل‌ها و تعداد استفاده: روی هر مرجع ماژول، فایل srcs، یا soong_config_module_type کلیک کنید تا به تعریف آن بروید. راهنمایی‌های درج‌کردنی N Usages قابل‌کلیک در کنار نام‌های واحد و هدف‌های srcs مشترک ظاهر می‌شود، و واحدهای کتابخانه بدون ارجاع به‌صورت بصری کم‌رنگ می‌شوند.
  • نکته‌ابزارهای مستندسازی ویژگی Soong: اشاره‌گر را روی هر ویژگی‌ای در فایل Android.bp نگه دارید (ازجمله ویژگی‌های با دامنه معماری یا هدف در target،‏ arch، و multilib) تا امضای نوع Soong و مستندات آن را به‌صورت درون‌خطی مشاهده کنید.

راهنمایی‌های ابزار مستندسازی دارایی Android.bp و نکات راهنمایی درج‌شده «کاربردها»


مدیریت دستگاه مجازی Cuttlefish و آینه‌سازی چندنمایی

‫ASfP شامل یک افزونه داخلی Cuttlefish برای توسعه‌دهندگان پلاتفرم، سیستم عامل Android Automotive‏ (AAOS)، و خودرو نرم‌افزارمحور (SDV) است که با دستگاه‌های مجازی Cuttlefish ساخته‌شده به‌صورت محلی کار می‌کنند:

  • راه‌اندازی چنددستگاهی در «مدیر دستگاه»: بااستفاده از نسخه محلی AOSP تسویه‌حساب ($ANDROID_BUILD_TOP و $ANDROID_PRODUCT_OUT)، راه‌اندازی‌های دستگاه مجازی Cuttlefish چنددستگاهی را در مدیر دستگاه ایجاد و مدیریت کنید.
  • قرینه‌سازی نمایشگر چندصفحه‌ای در پنجره ابزار Cuttlefish: View > Tool Windows > Cuttlefish را برای قرینه‌سازی نمایشگر چندصفحه‌ای Cuttlefish داخلی باز کنید تا بتوانید چندین نمایشگر خودرو را به‌طور هم‌زمان برای گردش‌های کاری AAOS و SDV مشاهده کنید و با آن‌ها تعامل داشته باشید.

پنجره ابزار Cuttlefish و قرینه‌سازی نمایشگر چندصفحه‌ای در ASfP