يحتوي مشروع في Android Studio for Platform (ASfP) على كل ما يحدّد مساحة عملك لقاعدة رموز AOSP، بدءًا من رمز المصدر ومواد العرض وصولاً إلى رمز الاختبار وإعدادات Soong build.
يستند ASfP إلى نموذج مساحة عمل IntelliJ، وينشئ مشاريع منصات كبيرة ويستعيد نموذج مشروعك من اللقطات المخزّنة مؤقتًا عند بدء التشغيل. يتم استبعاد المحتوى داخل دليل out/ وملفات gen التي تم إنشاؤها من نطاقات البحث في المشروع حتى تظل عملية التنقّل بين الرموز والملفات سريعة.
إعدادات المشروع (.asfp-project)
يتحكّم ملف YAML .asfp-project، الموجود في جذر دليل مشروعك، في إعدادات مشروع ASfP. يحدّد هذا الملف الأدلة ووحدات Soong واللغات وعلامات الإصدار التي يتم تضمينها في مساحة عملك.
يمكنك فتح إعدادات مشروعك في أي وقت باستخدام أي من الخيارات التالية:
- اختَر ASfP > المشروع > فتح الإعدادات من القائمة الرئيسية.
- انقر مرّتين على
.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
مطلوبة: هدف lunch المقترن بمشروعك. يتم استخدامه لجميع إجراءات Soong build والمزامنة والنشر.
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 build التي يتم تشغيلها من قِبل بيئة التطوير المتكاملة (IDE) (بما في ذلك عمليات المزامنة وعمليات الإصدار من الهامش وإعدادات التشغيل):
build_config:
flags:
- -j64
env:
SOONG_PARTIAL_COMPILE: true
SOONG_ALLOW_MISSING_DEPENDENCIES: true
أوضاع المزامنة ونافذة أدوات Soong
يوفر ASfP طرقًا متعددة لمزامنة مشروع بيئة التطوير المتكاملة (IDE) مع عملية سحب AOSP استنادًا إلى احتياجات سير عملك. يمكنك الوصول إلى هذه الإجراءات من قائمة ASfP > المزامنة أو نافذة أداة Soong:
- مزامنة المشروع: يحلّل هذا الخيار الأدلة والوحدات التي تم ضبطها و يعدّل عملية الفهرسة والتبعيات في بيئة التطوير المتكاملة (IDE).
- المزامنة الجزئية: يزامِن هذا الخيار مجموعة فرعية مستهدَفة فقط من الوحدات أو الأدلة، ما يوفّر الوقت عند العمل في منطقة محلية من الشجرة.
- المزامنة بدون إصدار: يعيد هذا الخيار تحميل بنية مشروع بيئة التطوير المتكاملة (IDE) وجذور المصدر بدون تشغيل خطوة Soong build، ما يكون مفيدًا عند إضافة ملفات مصدر أو نقلها أو عند إجراء عملية الإصدار من المحطة.
- المزامنة والإصدار الكامل: يجمع هذا الخيار بين مزامنة المشروع وعملية Soong build كاملة في خطوة واحدة.
تعرض نافذة أداة Soong (العرض > نوافذ الأدوات > Soong) مؤشرات الحالة في الوقت الفعلي لكل عقدة مهمة مزامنة، وأزرار الإصدار التي يمكن الوصول إليها بسرعة، وعملية تنفيذ أوامر Soong.
الإصدار والنشر والتنقّل في Android.bp داخل المحرِّر
يوفر ASfP دعمًا متكاملاً للمحرِّر لملفات 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 build قبل التشغيل: يمكنك إنشاء وحدة 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.
