پروژه در 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-projectYAML مشترک را برای پیشپر کردن دایرکتوریها، واحدها، و تنظیمات ساخت انتخاب کنید.
پارامترهای پیکربندی
فایل .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، میتوانید پیکربندیهای اجرای
Soong Deploy زمینهای را از حاشیه یا منوِ بافت کلیک راست با ویژگیهای زیر
ایجاد و راهاندازی کنید:
- روشهای پیادهسازی: پیادهسازی بااستفاده از
adb، دستورگانهای پوسته سفارشی،adevice، یاflashall. - قلابهای ساخت Soong پیشاز اجرا: قبلاز استقرار در دستگاه متصل یا دستگاه مجازی Cuttlefish، واحد هدف Soong را بهطور خودکار بسازید.

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

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

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