نظرة عامة على المشاريع وسير عمل Soong

يحتوي مشروع في 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 > المشروع > تصدير الإعدادات إلى نموذج لحفظ ملف نموذج قابل للمشاركة.

    تصدير إعدادات مشروع 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

إعدادات التشغيل السياقية للنشر والتثبيت السريع

بالنسبة إلى الوحدات القابلة للنشر في ملفات Android.bp، يمكنك إنشاء إعدادات تشغيل سياقية Soong Deploy وتشغيلها من الهامش أو قائمة السياق التي تظهر عند النقر بزر الماوس الأيمن، مع الميزات التالية:

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

اختيار إعدادات تشغيل Adevice أو Flashall في ASfP

الانتقال بين رمز المصدر وAndroid.bp

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

فتح قائمة السياق &quot;فتح ملف Android.bp ذي الصلة&quot;

ميزات المحرِّر الذكية في Android.bp والوثائق في تلميحات الأدوات

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

تلميحات الأدوات حول خصائص Android.bp وتلميحات مضمّنة حول الاستخدامات


إدارة جهاز 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.

نافذة أداة Cuttlefish والنسخ المطابق لشاشة العرض المتعددة في ASfP