يحتوي مشروع في "استوديو Android للمنصة" (ASfP) على كل ما يحدّد مساحة العمل الخاصة بقاعدة رموز AOSP، بدءًا من رموز المصدر والأصول إلى رموز الاختبار وإعدادات تصميم Soong.
يستند ASfP إلى "نموذج مساحة عمل IntelliJ"، وهو ينشئ مشاريع كبيرة على المنصات
ويستعيد نموذج مشروعك من اللقطات المخزّنة مؤقتًا عند بدء التشغيل. يتم استبعاد المحتوى داخل الدليل out/ والملفات التي تم إنشاؤها gen من نطاقات البحث في المشاريع، وذلك لضمان بقاء عملية التنقّل بين الرموز والملفات سريعة.
إعدادات المشروع (.asfp-project)
يتحكّم ملف .asfp-project YAML، الموجود في جذر دليل مشروعك، في إعدادات مشروع ASfP. يحدّد هذا الملف الدلائل ووحدات Soong واللغات وعلامات الإنشاء التي يتم تضمينها في مساحة العمل.
يمكنك فتح إعدادات مشروعك في أي وقت باستخدام أي من الخيارات التالية:
- انقر على ASfP > المشروع > فتح الإعدادات (Open Config) من القائمة الرئيسية.
- انقر مرّتين على
.asfp-projectفي جذر نافذة أدوات المشروع. - انقر على فتح الإعداد في شريط أدوات نافذة الأدوات Soong.
بعد تعديل .asfp-project، نفِّذ مزامنة للمشروع حتى تسري التغييرات.
نماذج المشاريع القابلة للمشاركة (التصدير والاستيراد)
يمكن للفرق التي تعمل على النظام الفرعي نفسه (مثل SystemUI أو "الإعدادات" أو SurfaceFlinger أو Automotive) مشاركة إعداد .asfp-project عادي كنموذج:
التصدير إلى نموذج: انقر بزر الماوس الأيمن على علامة التبويب الخاصة بمحرّر
.asfp-projectأو اختَر ASfP > المشروع > تصدير الإعدادات إلى نموذج لحفظ ملف نموذج قابل للمشاركة.
الاستيراد من نموذج: عند إنشاء مشروع جديد في معالج إعداد المشروع، انقر على الاستيراد من نموذج واختَر ملف YAML المشترك
.asfp-projectلملء الدلائل والوحدات وإعدادات الإنشاء مسبقًا.
مَعلمات الإعداد
يتيح ملف .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. أضِف
cpp للغة C وC++ أو 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:
- مزامنة المشروع: يحلّل هذا الخيار الأدلة والوحدات التي تم ضبطها ويعدّل الفهرسة والتبعيات في بيئة التطوير المتكاملة.
- المزامنة الجزئية: تتم مزامنة مجموعة فرعية مستهدَفة فقط من الوحدات أو الدلائل، ما يوفّر الوقت عند العمل في منطقة محلية من الشجرة.
- No-Build Sync: تعيد هذه الميزة تحميل بنية مشروع بيئة التطوير المتكاملة (IDE) وجذور المصدر بدون تنفيذ خطوة إنشاء Soong، وهي مفيدة عند إضافة ملفات مصدر أو نقلها أو عند الإنشاء من الجهاز.
- المزامنة والإنشاء الكامل: يجمع هذا الخيار بين مزامنة المشروع والإنشاء الكامل باستخدام Soong في خطوة واحدة.
تعرض نافذة أداة Soong (عرض > نوافذ الأدوات > Soong) مؤشرات الحالة في الوقت الفعلي لكل عقدة مهمة مزامنة، وأزرار إنشاء يمكن الوصول إليها بسرعة، وتنفيذ أوامر Soong.
Android.bp الإنشاء والنشر والتنقّل داخل المحرّر
توفّر "منصة Android للسلامة" دعمًا مدمجًا لأداة التعديل لملفات Android.bp:
إنشاء أهداف وتشغيلها وتصحيح أخطائها من الهامش
افتح أي ملف Android.bp في مشروعك لإنشاء أو تشغيل أهداف من خلال رمزين في الهامش:
- رمز الإنشاء (جميع الوحدات المسماة): يظهر بجانب
name:في كل وحدة مسماة (cc_library_sharedوjava_libraryوrust_binaryوandroid_appوأهداف الاختبار) لإنشاء هدف Soong هذا (إنشاء "<module>"). - رمز التشغيل أو تصحيح الأخطاء (
*_testو*_test_hostوandroid_app): انقر على تشغيل بجانب وحدة اختبار أو بيانandroid_appلتشغيل الوحدة أو تصحيح أخطائها. يتم تصحيح أخطاء وحداتandroid_testمن خلالatest، ويتم تشغيل وحدتَيcc_test*وrust_test*ضمن LLDB المضمّن.

إعدادات النشر السياقي والتشغيل السريع
بالنسبة إلى الوحدات القابلة للنشر في ملفات Android.bp، يمكنك إنشاء عمليات إعداد Soong Deploy السياقية وتشغيلها من الهامش أو قائمة النقر بزر الماوس الأيمن مع الميزات التالية:
- طُرق النشر: يمكنك النشر باستخدام
adbأو نصوص برمجية مخصّصة للأوامر أوadeviceأوflashall. - خطافات إنشاء Soong قبل التشغيل: إنشاء وحدة Soong المستهدَفة تلقائيًا قبل النشر على جهازك المتصل أو جهاز Cuttlefish الافتراضي

التنقّل بين رمز المصدر وAndroid.bp
من أي ملف مصدر أو دليل في نافذة الأدوات المشروع أو علامة تبويب المحرِّر أو قائمة السياق الخاصة بالمحرِّر، انقر بزر الماوس الأيمن واختَر فتح ملف Android.bp المقابل. يحدّد ASfP موضع تعريف الوحدة Android.bp التي يتم تجميع هذا الملف بها ويبرزه، مع حلّ كتل defaults وأنماط srcs أحرف البدل والروابط الرمزية.

Android.bp مستندات حول ميزات الذكاء في المحرّر وتلميحات الأدوات
- التنقّل بين الملفات وعدد مرات الاستخدام: اضغط مع الاستمرار على Control وانقر على أي مرجع لوحدة أو ملف
srcsأوsoong_config_module_typeللانتقال إلى تعريفها. تظهر تلميحاتN Usagesقابلة للنقر بجانب أسماء الوحدات النمطية واستهدافاتsrcsالمشتركة، ويتم تعتيم الوحدات النمطية للمكتبة غير المشار إليها بشكل مرئي. - تلميحات أدوات حول سمات Soong: مرِّر المؤشر فوق أي سمة في ملف
Android.bp، بما في ذلك السمات ذات النطاق المعماري أو النطاق المستهدف ضمنtargetوarchوmultilib، لعرض توقيع نوع Soong والمستندات المضمّنة.

إدارة الأجهزة الافتراضية في Cuttlefish وبث محتوى شاشات متعددة
يتضمّن ASfP إضافة Cuttlefish مدمجة للمطوّرين الذين يعملون على الأنظمة الأساسية وAndroid Automotive OS (AAOS) وSoftware-Defined Vehicle (SDV) باستخدام أجهزة Cuttlefish الافتراضية التي تم إنشاؤها محليًا:
- إعداد الأجهزة المتعددة في أداة إدارة الأجهزة: يمكنك إنشاء عمليات إعداد الأجهزة الافتراضية المتعددة في Cuttlefish وإدارتها في أداة إدارة الأجهزة باستخدام نسخة AOSP المحلية (
$ANDROID_BUILD_TOPو$ANDROID_PRODUCT_OUT). - ميزة "عرض الشاشة المتعددة" في نافذة أداة Cuttlefish: افتح عرض > نوافذ الأدوات > Cuttlefish للاستفادة من ميزة "عرض الشاشة المتعددة" المضمّنة في Cuttlefish، ما يتيح لك عرض شاشات متعددة خاصة بالسيارات والتفاعل معها في الوقت نفسه لتنفيذ مهام AAOS وSDV.
