تحتوي منصة Software Defined Vehicle (SDV) على العديد من فهارس VSIDL في جميع أنحاء قاعدة الرموز البرمجية. يوفّر الملف CATALOG_UPDATE إعدادًا مركزيًا لكل فهرس، ما يتيح إجراء التحديثات التلقائية ودمج بيئة التطوير المتكاملة (IDE).
دور ملف CATALOG_UPDATE
يخدم ملف CATALOG_UPDATE غرضَين أساسيَّين:
- التحديثات المبرمَجة: يسمح الملف لأداة
regeneratorبالعثور على جميع الفهارس في النظام وإعادة تجميعها عند تغيير المجمّع أو التبعيات. - توافق بروتوكول خادم اللغة (LSP): يستخدم خادم لغة VSIDL هذا الملف لاكتشاف جذر الفهرس وحلّ التبعيات. يتيح ذلك ميزات مثل "الانتقال إلى التعريف" والإكمال التلقائي والتحقّق من الصحة في الوقت الفعلي للأنواع المحدّدة في الفهارس الأخرى.
إعداد كتالوج
لتفعيل التحديثات التلقائية وتوافق LSP مع فهرس VSIDL، أنشئ ملف
CATALOG_UPDATE في الدليل الجذر للفهرس. هذا الملف هو ملف
protobuf نصي.
حقول إعدادات الكتالوج
-
output_path(string, optional): المسار النسبي من جذر الكتالوج إلى الدليل الذي يجب وضع رمز البرامج الوسيطة الذي تم إنشاؤه فيه. -
dependency_catalog_paths(سلسلة متكرّرة): قائمة بالمسارات النسبية إلى أدلة الفهرس الأخرى. يستخدم خادم LSP هذه المسارات لتحديد الأنواع الخارجية. -
vsidlc_gen_args(سلسلة، اختيارية): الوسيطات التي تم تمريرها إلىvsidlcيفحص خادم LSP هذه القيم لتطبيق قواعد التحقّق الصحيحة (على سبيل المثال،"--apex"). -
prebuilts_output_path(string، اختياري): مسار عمليات الإنشاء المسبق لإعدادات وقت التشغيل التي تم إنشاؤها. -
prebuilts_filegroup(سلسلة، اختيارية): اسم Soongfilegroupالخاص بالحِزم المسبقة الإنشاء.
مثال على الإعداد
# proto-file: //system/software_defined_vehicle/tools/regenerator/proto/catalog.proto
# proto-message: Catalog
output_path: ".."
dependency_catalog_paths: "../../../../../automotive_services/diagnostics/vsidl/v1"
vsidlc_gen_args: "--apex"
أهمية التحديثات التلقائية
تتسبّب الصيانة اليدوية للرموز البرمجية التي يتم إنشاؤها لكل كتالوج في حدوث مشاكل لعدة أسباب:
- تعديلات على برنامج التجميع: عند تعديل برنامج التجميع من خلال إصلاح الأخطاء أو إضافة ميزات جديدة، يجب إعادة تحميل جميع الرموز والملفات التي لم يتم تضمينها في
genruleفي ملفAndroid.bpللحفاظ على التناسق. - إدارة التبعيات: غالبًا ما تتطلّب التغييرات في كتالوج أساسي إعادة إنشاء الكتالوجات التابعة.
- الدقة: تحدّ التعديلات التلقائية من خطر حدوث أخطاء بشرية عند تحديد المسارات والتبعيات.
تشغيل أداة إعادة الإنشاء
تتتبّع الأداة regenerator شجرة الدليل بدءًا من جذر SDV وتبحث عن ملفات تحمل الاسم CATALOG_UPDATE بالضبط.
لتعديل جميع الكتالوجات التي تم ضبطها، اتّبِع الخطوات التالية:
إنشاء الأداة:
m regeneratorشغِّل الأداة:
regeneratorيمكنك اختياريًا تشغيله بشكل متكرر لدليل معيّن:
console regenerator --root /path/to/directory
تعدّل الأداة الملفات التي تم إنشاؤها وتنفّذ عملية إنشاء كاملة (m droid) للتأكّد من أنّ التغييرات متوافقة مع بقية النظام.