اصطلاحات تسمية حِزم الخدمات

يتم تحديد أسماء حِزم الخدمات في تسلسل هرمي.

  • كل جهاز افتراضي (يتم تحديده من خلال اسم الجهاز الافتراضي) هو عملية نشر واحدة لنظام تشغيل ملف تعريف SDV Core.

  • يمكن أن تحتوي كل حزمة (يتم تحديدها من خلال اسم حزمة) على حِزم خدمات متعددة.

  • يمكن إنشاء مثيلات متعددة لكل حزمة خدمة (يتم تحديدها من خلال اسم حزمة الخدمة) على الجهاز الافتراضي نفسه.

  • يتم تحديد كل مثيل لحزمة الخدمة من خلال اسم مثيل حزمة الخدمة يتم تعيينه في مدّة التحميل.

اسم الجهاز الافتراضي (VM) لمركبة SDV

اسم الجهاز الافتراضي هو معرّف اسم فريد يتم إرفاقه بكل عملية نشر لملف شخصي من SDV Core كما هو محدّد في إعدادات الجهاز الافتراضي للمركبة (vvmconfig). يُستخدم اسم الجهاز الافتراضي في التسمية كفصل منطقي للخدمات على طول حدود الجهاز الافتراضي في السيارة. تشمل الأمثلة ما يلي:

  • cdc
  • mechatronics
  • pcu
  • telematics-unit

تنطبق قيود التسمية هذه.

  • يجب أن يبدأ اسم الجهاز الظاهري بحرف [a-z]
  • يجب ألا ينتهي اسم الآلة الافتراضية بواصلة
  • يجب ألا يتجاوز اسم الجهاز الظاهري 31 حرفًا
  • يجب أن تكون جميع الأحرف أبجدية رقمية صغيرة أو شرطة واصلة [a-z0-9\-]
  • يجب ألا تظهر الشرطات المتصلة في الاسم بشكل متتابع أكثر من مرة واحدة

يتم التحقّق من أنّ اسم الجهاز الافتراضي فريد أثناء وقت الترجمة البرمجية (التحليل الثابت) وعند تشغيل النظام عند تحميل vvmconfig.

يحدث خطأ على مستوى عملية التشغيل عندما يتعذّر إجراء عملية التحقّق أثناء عملية التشغيل.

اسم حزمة SDV

على غرار نظام التشغيل Android العادي، يحدّد اسم حزمة SDV حزمة تم نشرها على النظام بشكلٍ فريد. يجب توفير حزمة APEX فريدة لكل اسم حزمة. على سبيل المثال:

  • com.android.sdv.datatunnel
  • com.android.sdv.sample.datatunnel
  • com.yourcompany.sdv.adas

تنطبق القيود التالية:

  • يجب أن تبدأ جميع حِزم APEX الخاصة بخدمة SDV والمملوكة للشركاء بالبادئة com.<companyname>.sdv. (com.android.sdv. محجوزة لحِزم APEX الخاصة بخدمة SDV والمملوكة لشركة Google).
  • يجب أن تكون جميع الأحرف أبجدية رقمية أو شرطة سفلية [a-z0-9_].
  • يجب أن يحتوي اسم الحزمة على أربعة أجزاء على الأقل مفصولة بنقاط.
  • يجب ألا ينتهي اسم الحزمة بنقطة.
  • يجب ألا يتجاوز اسم الحزمة 127 حرفًا.
  • يجب أن يبدأ كل جزء بحرف.
  • لا يمكن أن تتضمّن أي شريحة شُرطًا سفلية متتالية، __.
  • لا يمكن أن ينتهي أي جزء بعلامة الشرطة السفلية _.
  • يجب ألا تكون الأقسام فارغة (أي لا تحتوي على نقاط متتالية).

اسم حزمة الخدمات

على غرار نظام التشغيل Android العادي، تحتوي كل حزمة خدمات على اسم يمكن قراءته، ويتم تحديد نطاقه في اسم الحزمة التي ينتمي إليها. على سبيل المثال:

  • SomeService
  • ImportantService

تنطبق قيود التسمية التالية:

  • يجب أن يبدأ اسم حزمة الخدمة بحرف لاتيني كبير
  • يجب ألا يكون اسم حزمة الخدمة فارغًا
  • يجب ألا يتجاوز اسم حزمة الخدمة 47 حرفًا
  • يجب ألا يحتوي اسم حزمة الخدمة على شرطات سفلية متتالية، __
  • يجب ألا يبدأ اسم حزمة الخدمة أو ينتهي بشرطة سفلية، _
  • يجب أن تكون جميع الأحرف أبجدية رقمية أو شرطة سفلية، [A-Za-z0-9_]

اسم مثيل حزمة الخدمة

على عكس تطبيقات Android العادية، يمكن تثبيت حِزم الخدمات في AAOS SDV وتحميلها عدة مرات على الجهاز الافتراضي نفسه. نتيجةً لذلك، يمكن أن تتضمّن حزمة الخدمة نفسها مثيلات متعدّدة تعمل ضمن الجهاز الافتراضي نفسه للمركبة المحدّدة بنظام التشغيل Android Automotive OS. يتم تعيين اسم حزمة خدمة يمكن للمستخدمين قراءته لهذه المثيلات. على سبيل المثال:

  • front-left
  • front-right
  • main
  • client
  • subscriber

تنطبق القيود التالية:

  • يجب أن يستوفي اسم المثيل الشروط التالية:

    • البدء بحرف [a-z]
    • لا ينتهي بواصلة
    • ألا يتجاوز 47 حرفًا
    • أن تكون فريدة على الجهاز الظاهري نفسه للخدمة نفسها
  • يجب أن تكون جميع الأحرف أبجدية رقمية صغيرة أو شرطة واصلة [a-z0-9\-]

  • يجب ألا تظهر الواصلات بشكل متتابع

  • يجب أن يكون لكل نسخة من الخدمة اسم فريد (يتم توفيره أو إنشاؤه عند بدء تشغيل الخدمة).

اسم مثيل حزمة الخدمة المؤهَّل بالكامل (FQIN)

يتم دمج اسم الجهاز الافتراضي لخدمة SDV واسم الحزمة واسم حزمة الخدمة واسم مثيل حزمة الخدمة في اسم مثيل حزمة خدمة مؤهَّل بالكامل (FQIN). ويحدّد هذا الاسم بشكل فريد مثيل حزمة الخدمة على مستوى المركبة.

في ما يلي بعض الأمثلة:

  • cdc:com.android.sdv.datatunnel.SomeService/instance1
  • cdc:com.android.sdv.datatunnel.SomeService/instance2
  • mechatronics:com.yourcompany.sdv.adas.TirePressure/front-left
  • mechatronics:com.yourcompany.sdv.adas.TirePressure/front-right
  • mechatronics:com.yourcompany.sdv.adas.TirePressure/rear-right
  • pcu:com.android.sdv.cluster.InfoProvider/acceleration

يمكن أن تحمل حِزم الخدمات في حِزم مختلفة اسم حزمة الخدمات نفسه. على سبيل المثال، تتضمّن حزمتان من الخدمات (يتم تحديدهما من خلال اسم FQIN الخاص بكل منهما)، تم نشرهما في الجهاز الظاهري نفسه لبرنامج SDV (mechatronics)، اسم حزمة الخدمات نفسه وهو TirePressure:

  • mechatronics:com.yourcompany1.sdv.adas.TirePressure/default
  • mechatronics:com.yourcompany2.sdv.adas.TirePressure/default

في هذا المثال، لا يحدث تعارض في التسمية لأنّ حزمتَي الخدمة تقعان في حزمتَين مختلفتَين (إحداهما في com.yourcompany1.sdv.adas والأخرى في com.yourcompany2.sdv.adas).

اسم الموضوع

يتم تحديد المواضيع من خلال سلاسل فريدة على مستوى المركبة لنوع رسالة معيّن.

أمثلة على أسماء المواضيع:

  • left-tire
  • front-window
  • engine-coolant-temp

التقييدات:

  • يجب أن يكون حرفًا أبجديًا رقميًا أو شرطة، [a-z0-9\-].
  • يجب أن يبدأ بحرف.
  • يجب ألا يتجاوز 127 حرفًا.

اسم القناة

يتم تحديد القنوات من خلال سلسلة أسماء.

أمثلة على أسماء القنوات:

  • main-control
  • high-priority
  • background

التقييدات:

  • يجب أن يكون حرفًا أبجديًا رقميًا أو شرطة، [a-z0-9\-].
  • يجب أن يبدأ بحرف.
  • يجب ألا يتجاوز 127 حرفًا.

اسم وحدة الخدمة

يتفاعل مطوّرو حِزم الخدمات بشكل أساسي مع المواضيع والقنوات. أسماء وحدات الخدمة هي تفاصيل أساسية للتنفيذ، ويتم مواجهتها بشكل أساسي عند استخدام أدوات تصحيح الأخطاء، مثل dumpsys.

يجب أن توفّر وحدات الخدمة اسم وحدة الخدمة عند تسجيلها في ميزة &quot;اكتشاف الخدمات&quot; في SDV، ويتوفّر اسم وحدة الخدمة هذا عند اكتشاف الخدمة. تعرض الأمثلة التالية أسماء وحدات الخدمة مع أسماء FQIN:

  • ( cdc:com.android.sdv.adas.Service1/default-inst , tp-provider )
  • ( cdc:com.yourcompany.sdv.adas.TirePressure/instance1 , tp-provider-1 )
  • ( mech:com.yourcompany.sdv.adas.TirePressure/instance2 , tp-instance )

أسماء أنواع الوحدات

تكون أسماء أنواع الوحدات مساوية لأسماء أنواع Protobuf (المؤهَّلة بالكامل). على سبيل المثال:

  • com.android.sdv.datatunnel.IComponentHandler
  • com.android.sdv.datatunnel.IComponentHandler
  • com.yourcompany.sdv.adas.TirePressure
  • com.android.sdv.cluster.IWheelInfoCallback
  • com.android.sdv.cluster.ISeatAlignmentCallback

ملخّص

يتم تلخيص متطلبات التسمية في الجدول التالي:

العنصر الحدّ المسموح به الأحرف المسموح بها نوع الحالة
FQIN ‫256 حرفًا يتألف من اسم الجهاز الافتراضي واسم الحزمة واسم حزمة الخدمة واسم مثيل حزمة الخدمة. أحرف صغيرة
اسم الجهاز الافتراضي (VM) لمركبة SDV ‫30 حرفًا
  • يجب أن يبدأ بحرف a-z.
  • يجب ألا ينتهي بواصلة (-).
  • يجب أن تكون الأحرف أبجدية رقمية صغيرة أو شرطة واصلة (a-z0-9\-).
  • يجب ألا تظهر الشرطات المتصلة بشكل متتابع أكثر من مرة.
أحرف صغيرة
اسم حزمة SDV 127 حرفًا
  • يجب أن يحتوي على أربعة أجزاء على الأقل.
  • يجب أن يبدأ بحرف.
  • لا يمكن أن تحتوي أي شريحة على شرطات سفلية متتالية.
  • لا يمكن أن تنتهي أي شريحة بشرطة سفلية.
  • لا يمكن أن تكون الشرائح فارغة.
  • يجب أن تكون الأحرف صغيرة أو شرطة (a-z0-9\-).
أحرف صغيرة
اسم حزمة الخدمات ‫30 حرفًا
  • يجب أن يبدأ بحرف كبير.
  • يجب ألا يكون فارغًا.
  • يجب ألا يحتوي على شُرط سفلية متتالية (__).
  • يجب ألا يبدأ الاسم أو ينتهي بشرطة سفلية (_).
  • يجب أن تكون الأحرف أبجدية رقمية أو شرطة سفلية (A-Za-z0-9_).
حالة مختلطة
اسم مثيل حزمة الخدمة ‫48 حرفًا
  • يجب أن يبدأ بحرف (a-z).
  • يجب ألا ينتهي بواصلة (-).
  • يجب أن يكون فريدًا على الجهاز الافتراضي نفسه للخدمة نفسها.
  • يجب أن تكون الأحرف صغيرة أو شرطة (a-z0-9\-).
  • يجب ألا تظهر الواصلات بشكل متتابع.
أحرف صغيرة
اسم الموضوع 127 حرفًا
  • يجب أن يبدأ بحرف (a-z).
  • يجب أن تكون الأحرف أبجدية رقمية صغيرة أو شرطة واصلة (a-z0-9\-).
أحرف صغيرة
اسم القناة 127 حرفًا
  • يجب أن يبدأ بحرف (a-z).
  • يجب أن تكون الأحرف أبجدية رقمية صغيرة أو شرطة واصلة (a-z0-9\-).
أحرف صغيرة
اسم وحدة الخدمة ‫48 حرفًا
  • يجب أن يبدأ بحرف (a-z).
  • يجب ألا ينتهي بواصلة (-).
  • يجب أن تكون الأحرف صغيرة أو شرطة (a-z0-9\-).
  • يجب ألا تظهر الشرطات المتصلة بشكل متتابع أكثر من مرة.
أحرف صغيرة