सेवा बंडल के नाम, क्रम के हिसाब से तय किए जाते हैं.
हर वीएम (जिसकी पहचान वीएम के नाम से होती है) SDV Core प्रोफ़ाइल ऑपरेटिंग सिस्टम की एक ही डिप्लॉयमेंट होती है.
हर पैकेज (जिसकी पहचान पैकेज के नाम से होती है) में, सेवा के कई बंडल हो सकते हैं.
हर सेवा बंडल (जिसकी पहचान सेवा बंडल के नाम से होती है) को एक ही वीएम पर कई बार इंस्टैंशिएट किया जा सकता है.
हर सेवा बंडल इंस्टेंस की पहचान, लोड होने के समय असाइन किए गए सेवा बंडल इंस्टेंस के नाम से होती है.
SDV वीएम का नाम
वीएम का नाम, SDV Core प्रोफ़ाइल की हर डिप्लॉयमेंट से जुड़ा एक यूनीक नाम आइडेंटिफ़ायर होता है. इसकी जानकारी, व्हीकल वीएम कॉन्फ़िग (vvmconfig) में दी जाती है. वीएम के नाम का इस्तेमाल, किसी वाहन में वीएम की सीमाओं के हिसाब से सेवाओं को अलग-अलग नाम देने के लिए किया जाता है. उदाहरण के लिए:
cdcmechatronicspcutelematics-unit
नाम देने से जुड़ी ये पाबंदियां लागू होती हैं.
- वीएम का नाम,
[a-z]अक्षर से शुरू होना चाहिए - वीएम का नाम, हाइफ़न पर खत्म नहीं होना चाहिए
- वीएम के नाम में 31 से ज़्यादा वर्ण नहीं होने चाहिए
- सभी वर्ण, लोअरकेस अल्फ़ान्यूमरिक या हाइफ़न
[a-z0-9\-]होने चाहिए - नाम में हाइफ़न, एक से ज़्यादा बार लगातार नहीं होने चाहिए
वीएम के नाम के यूनीक होने की पुष्टि, कंपाइल करने के समय (स्टैटिक-ऐनलिसिस) और सिस्टम बूट होने पर की जाती है. यह पुष्टि, vvmconfig लोड होने पर की जाती है.
बूट होने के समय पुष्टि करने में गड़बड़ी होने पर, बूट-लेवल की गड़बड़ी होती है.
SDV पैकेज का नाम
स्टैंडर्ड Android की तरह, SDV पैकेज का नाम, सिस्टम पर डिप्लॉय किए गए पैकेज की खास तौर पर पहचान करता है. हर पैकेज के नाम के लिए, एक यूनीक APEX देना ज़रूरी है. उदाहरण के लिए:
com.android.sdv.datatunnelcom.android.sdv.sample.datatunnelcom.yourcompany.sdv.adas
ये पाबंदियां लागू होती हैं:
- पार्टनर के मालिकाना हक वाले सभी SDV APEX के नाम की शुरुआत
com.<companyname>.sdv.(com.android.sdv.को Google के मालिकाना हक वाले SDV APEX के लिए रिज़र्व रखा गया है) से होनी चाहिए. - सभी वर्ण, अल्फ़ान्यूमरिक या अंडरस्कोर
[a-z0-9_]होने चाहिए. - पैकेज के नाम में, पीरियड से अलग किए गए कम से कम चार सेगमेंट होने चाहिए.
- पैकेज का नाम, पीरियड पर खत्म नहीं होना चाहिए.
- पैकेज के नाम में 127 से ज़्यादा वर्ण नहीं होने चाहिए.
- हर सेगमेंट की शुरुआत, किसी अक्षर से होनी चाहिए.
- किसी भी सेगमेंट में, लगातार अंडरस्कोर
__नहीं होने चाहिए. - कोई भी सेगमेंट, अंडरस्कोर
_पर खत्म नहीं होना चाहिए. - सेगमेंट खाली नहीं होने चाहिए. इसका मतलब है कि लगातार पीरियड नहीं होने चाहिए.
सेवा बंडल का नाम
स्टैंडर्ड Android की तरह, हर सेवा बंडल का नाम ऐसा होता है जिसे आसानी से पढ़ा जा सकता है. इसे उस पैकेज के नेमस्पेस में रखा जाता है जिससे यह जुड़ा होता है. उदाहरण के लिए:
SomeServiceImportantService
नाम देने से जुड़ी ये पाबंदियां लागू होती हैं:
- सेवा बंडल का नाम, कैपिटल लेटर से शुरू होना चाहिए
- सेवा बंडल का नाम, खाली नहीं होना चाहिए
- सेवा बंडल के नाम में 47 से ज़्यादा वर्ण नहीं होने चाहिए
- सेवा बंडल के नाम में, लगातार अंडरस्कोर
__नहीं होने चाहिए - सेवा बंडल का नाम, अंडरस्कोर
_से शुरू या खत्म नहीं होना चाहिए - सभी वर्ण, अल्फ़ान्यूमरिक या अंडरस्कोर
[A-Za-z0-9_]होने चाहिए
सेवा बंडल इंस्टेंस का नाम
AAOS SDV में, सेवा के बंडलों को एक ही वीएम पर कई बार इंस्टॉल और लोड किया जा सकता है. ऐसा स्टैंडर्ड Android ऐप्लिकेशन में नहीं किया जा सकता. इसलिए, एक ही AAOS SDV वीएम में, एक ही सेवा बंडल के कई इंस्टेंस चल सकते हैं. इन इंस्टेंस को सेवा बंडल इंस्टेंस का नाम असाइन किया जाता है. यह नाम ऐसा होता है जिसे आसानी से पढ़ा जा सकता है. उदाहरण के लिए:
front-leftfront-rightmainclientsubscriber
ये पाबंदियां लागू होती हैं:
इंस्टेंस का नाम:
[a-z]अक्षर से शुरू होना चाहिए- हाइफ़न पर खत्म नहीं होना चाहिए
- 47 से ज़्यादा वर्णों का नहीं होना चाहिए
- एक ही वीएम पर, एक ही सेवा के लिए यूनीक होना चाहिए
सभी वर्ण, लोअरकेस अल्फ़ान्यूमरिक या हाइफ़न
[a-z0-9\-]होने चाहिएहाइफ़न, लगातार नहीं होने चाहिए
सेवा के हर इंस्टेंस का नाम यूनीक होना चाहिए. यह नाम, सेवा शुरू होने पर दिया या बनाया जाता है.
सेवा बंडल इंस्टेंस का पूरी तरह क्वालिफ़ाइड नाम (एफ़क्यूआईएन)
SDV वीएम का नाम, पैकेज का नाम, सेवा बंडल का नाम, और सेवा बंडल इंस्टेंस का नाम, एक साथ मिलकर सेवा बंडल इंस्टेंस का पूरी तरह क्वालिफ़ाइड नाम (एफ़क्यूआईएन) बनाते हैं. यह, वाहन में सेवा बंडल इंस्टेंस की खास तौर पर पहचान करता है.
कुछ उदाहरण:
cdc:com.android.sdv.datatunnel.SomeService/instance1cdc:com.android.sdv.datatunnel.SomeService/instance2mechatronics:com.yourcompany.sdv.adas.TirePressure/front-leftmechatronics:com.yourcompany.sdv.adas.TirePressure/front-rightmechatronics:com.yourcompany.sdv.adas.TirePressure/rear-rightpcu:com.android.sdv.cluster.InfoProvider/acceleration
अलग-अलग पैकेज में मौजूद सेवा बंडलों के नाम एक जैसे हो सकते हैं. उदाहरण के लिए, एक ही SDV वीएम (mechatronics) में डिप्लॉय किए गए इन दो सेवा बंडलों (जिनकी पहचान उनके एफ़क्यूआईएन से होती है) के नाम TirePressure हैं:
mechatronics:com.yourcompany1.sdv.adas.TirePressure/defaultmechatronics:com.yourcompany2.sdv.adas.TirePressure/default
इस उदाहरण में, नाम टकराने की कोई समस्या नहीं होती, क्योंकि दोनों सेवा बंडल अलग-अलग पैकेज में हैं. एक com.yourcompany1.sdv.adas में है और दूसरा com.yourcompany2.sdv.adas में.
विषय का नाम
विषयों की पहचान, स्ट्रिंग से होती है. ये स्ट्रिंग, मैसेज के किसी टाइप के लिए पूरे वाहन में यूनीक होती हैं.
विषयों के नाम के उदाहरण:
left-tirefront-windowengine-coolant-temp
पाबंदियां:
- अल्फ़ान्यूमरिक या हाइफ़न
[a-z0-9\-]होना चाहिए. - किसी अक्षर से शुरू होना चाहिए.
- 127 से ज़्यादा वर्णों का नहीं होना चाहिए.
चैनल का नाम
चैनल की पहचान, नाम वाली स्ट्रिंग से होती है.
चैनल के नाम के उदाहरण:
main-controlhigh-prioritybackground
पाबंदियां:
- अल्फ़ान्यूमरिक या हाइफ़न
[a-z0-9\-]होना चाहिए. - किसी अक्षर से शुरू होना चाहिए.
- 127 से ज़्यादा वर्णों का नहीं होना चाहिए.
सेवा यूनिट का नाम
सेवा बंडल के डेवलपर, मुख्य तौर पर विषयों और
चैनलों के साथ इंटरैक्ट करते हैं. सेवा यूनिट के नाम, लागू करने से जुड़ी जानकारी होती है. ये नाम, मुख्य तौर पर डीबग करने वाले टूल, जैसे कि dumpsys का इस्तेमाल करते समय दिखते हैं.
SDV Service Discovery के साथ रजिस्टर होने पर, सेवा यूनिट के लिए सेवा यूनिट का नाम देना ज़रूरी होता है. सेवा यूनिट का यह नाम, Service Discovery के समय उपलब्ध होता है. इन उदाहरणों में, एफ़क्यूआईएन के साथ सेवा यूनिट के नाम दिखाए गए हैं:
( 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.IComponentHandlercom.android.sdv.datatunnel.IComponentHandlercom.yourcompany.sdv.adas.TirePressurecom.android.sdv.cluster.IWheelInfoCallbackcom.android.sdv.cluster.ISeatAlignmentCallback
खास जानकारी
नाम देने से जुड़ी ज़रूरी शर्तों के बारे में, यहां दी गई टेबल में बताया गया है:
| आइटम | सीमा | अनुमति वाले वर्ण | केस टाइप |
|---|---|---|---|
| एफ़क्यूआईएन | 256 वर्ण | इसमें वीएम का नाम, पैकेज का नाम, सेवा बंडल का नाम, और सेवा बंडल इंस्टेंस का नाम शामिल होता है. | लोअरकेस |
| SDV वीएम का नाम | 30 वर्ण |
|
लोअरकेस |
| SDV पैकेज का नाम | 127 वर्ण |
|
लोअरकेस |
| सेवा बंडल का नाम | 30 वर्ण |
|
छोटे-बड़े अक्षर |
| सेवा बंडल इंस्टेंस का नाम | 48 वर्ण |
|
लोअरकेस |
| विषय का नाम | 127 वर्ण |
|
लोअरकेस |
| चैनल का नाम | 127 वर्ण |
|
लोअरकेस |
| सेवा यूनिट का नाम | 48 वर्ण |
|
लोअरकेस |