कार में बेहतर, डाइनैमिक, और मल्टी-पैनल वाले उपयोगकर्ता अनुभव बनाने के लिए, स्केलेबल यूज़र इंटरफ़ेस (यूआई) का इस्तेमाल करें. स्केल किया जा सकने वाला यूज़र इंटरफ़ेस (यूआई):
यह एक फ़्लेक्सिबल विंडोइंग सिस्टम उपलब्ध कराता है.
इससे यूज़र इंटरफ़ेस (यूआई) को लागू करने के लिए, Compatibility Test Suite (CTS) से जुड़े इंजीनियरिंग के जोखिम, लागत, और जटिलताएं कम हो जाती हैं.
स्केलेबल यूज़र इंटरफ़ेस (यूआई), मॉडर्न इन-व्हीकल इन्फ़ोटेनमेंट (आईवीआई) के कई डिज़ाइन के साथ काम करता है. इसके लिए, डाइनैमिक विंडो अरेंजमेंट की ज़रूरत होती है. साथ ही, यह स्टैटिक विंडो अरेंजमेंट के साथ काम करने वाले पुराने डिज़ाइन के साथ भी काम करता है.
Android 17 में, विंडो को मैनेज करने की ऐडवांस सुविधाओं से जुड़ी ये सुविधाएं जोड़ी गई हैं:
- सूचना पैनल लागू करना
- सिस्टम बार को पसंद के मुताबिक बनाना
- WindowManager इनवेरिएंट का इस्तेमाल करके, टेस्ट के नियमों का ज़्यादा से ज़्यादा पालन करना
- सेटअप विज़र्ड को इंटिग्रेट करना
एक्सपीरियंस के सैंपल
स्केलेबल यूज़र इंटरफ़ेस (यूआई) की मदद से, विंडो के कॉन्फ़िगरेशन को कई तरह से सेट किया जा सकता है. स्केलेबल यूज़र इंटरफ़ेस (यूआई) का इस्तेमाल करने के लिए, यहां कुछ सैंपल उदाहरण दिए गए हैं:
फ़्लोटिंग ऐप्लिकेशन के साथ मैप की बैकग्राउंड इमेज
मैप के बैकग्राउंड का कॉन्फ़िगरेशन, जिसमें अन्य ऐप्लिकेशन सबसे ऊपर फ़्लोट कर रहे हैं.
ऐप्लिकेशन का बैकग्राउंड
फ़्लोटिंग पैनल के साथ ऐप्लिकेशन के बैकग्राउंड का कॉन्फ़िगरेशन.
अन्य ऐप्लिकेशन के नीचे पिन किया गया ऐप्लिकेशन
पिन किया गया कोई ऐप्लिकेशन, जैसे कि विजेट कंटेनर. इसके ऊपर दूसरे ऐप्लिकेशन लॉन्च किए जा रहे हैं.
कंडिशनल फ़्लोटिंग पैनल
शर्तों के हिसाब से दिखने वाला फ़्लोटिंग पैनल. यह सिर्फ़ तब दिखता है, जब कुछ शर्तें पूरी होती हैं. जैसे, मीडिया चलाने पर या सूचना ट्रिगर होने पर.
पिन किया गया ऐप्लिकेशन, ड्राइवर के पास हो
पिन किया गया ऐप्लिकेशन, ड्राइवर के पास मौजूद है.
स्प्लिट स्क्रीन लेआउट
स्प्लिट स्क्रीन लेआउट में, दो ऐप्लिकेशन को अगल-बगल दिखाया गया है.
इंटरैक्टिव स्प्लिट स्क्रीन
स्प्लिट स्क्रीन वाला इंटरैक्टिव लेआउट, जिसमें डाइनैमिक तरीके से साइज़ बदलने की सुविधा होती है.
बड़ी स्क्रीन के लिए मल्टीऐंकर लेआउट
बड़ी स्क्रीन के लिए डिज़ाइन किया गया मल्टीएंकर लेआउट.
होम स्क्रीन पर दिखने वाला ऐप्लिकेशन कैरसेल
होम स्क्रीन के लेआउट में ऐप्लिकेशन कैरसेल दिख रहा है.
फ़ायदे और ज़रूरी शर्तें
स्केलेबल यूज़र इंटरफ़ेस (यूआई) के फ़ायदों में ये शामिल हैं:
टेस्टिंग से जुड़े जोखिम कम होते हैं: यह फ़्रेमवर्क पहले से सर्टिफ़ाइड है और सीटीएस के मुताबिक है. इससे प्रोग्राम साइकल के आखिर में टेस्ट फ़ेल होने का जोखिम कम हो जाता है. स्केलेबल यूज़र इंटरफ़ेस (यूआई) से, इंजीनियरिंग में लगने वाले महीनों के समय की बचत हो सकती है. साथ ही, इससे नियमों का पालन करने में तेज़ी आती है.
डिज़ाइन में ज़्यादा आसानी: यह कई मुश्किल ऑटोमोटिव विंडोइंग मॉडल को फिर से बनाने की क्षमता रखता है. स्केलेबल यूज़र इंटरफ़ेस की मदद से, बेहतर और अलग-अलग डिज़ाइन बनाए जा सकते हैं.
लागू करने में आसानी: कॉन्फ़िगरेशन पर आधारित हाई-लेवल के XML मॉडल में अबस्ट्रैक्शन की वजह से, कस्टम विंडोइंग लॉजिक को लागू करना आसान हो जाता है.
बेहतर परफ़ॉर्मेंस: स्केलेबल यूज़र इंटरफ़ेस (यूआई), हाई-परफ़ॉर्मेंस विंडोइंग फ़ाउंडेशन पर काम करता है. यह स्टैंडर्ड Android के साथ पूरी तरह से इंटिग्रेट होता है. ट्रांज़िशन फ़्लो स्मूद होता है, जिससे सीधे तौर पर ऑप्टिमाइज़ेशन किया जा सकता है.
कोर बिल्डिंग ब्लॉक
स्केलेबल यूज़र इंटरफ़ेस (यूआई) की वजह से, ओईएम के हिसाब से कोड की ज़रूरत कम हो जाती है. साथ ही, इसे अपडेट करना आसान हो जाता है. इसके अलावा, यह यूज़र इंटरफ़ेस (यूआई) लॉन्च करने से जुड़े जोखिमों को कम करता है. ऐसा इसलिए, क्योंकि यह संभावित समस्याओं को खत्म करता है और सर्टिफ़िकेशन से जुड़ी समस्याओं को कम करता है.
एक्सएमएल का इस्तेमाल करने से, AAOS में जटिल विंडो सिस्टम को मैनेज करने से जुड़ी सामान्य समस्याओं को हल किया जा सकता है. जैसे, सटीक पोज़िशनिंग, Z-ऑर्डर के टकराव, और ऐप्लिकेशन फ़ोकस.
स्केलेबल यूज़र इंटरफ़ेस, ये मुख्य कॉम्पोनेंट उपलब्ध कराता है.
पैनल
पैनल, स्क्रीन पर मौजूद एक रेक्टैंगल (आयताकार) कंटेनर होता है. हर पैनल, अलग से मैनेज करने के लिए, किसी खास रूट टास्क से मैप होता है. किसी पैनल में, ऐप्लिकेशन टास्क (TaskPanel) या व्यू पर आधारित कॉन्टेंट, जैसे कि विजेट (DecorPanel) होस्ट किए जा सकते हैं.
ज़्यादा जानने के लिए, पैनल कॉन्फ़िगर करना लेख पढ़ें.
वैरिएंट
वैरिएंट, पैनल के लिए खास विज़ुअल स्टेट तय करता है. इसमें bounds (पोज़िशन और साइज़), visibility, layer (Z-ऑर्डर), और corner रेडियस जैसी प्रॉपर्टी शामिल होती हैं. एक पैनल में वैरिएंट हो सकते हैं. जैसे, opened, closed या minimized. ज़्यादा जानने के लिए, विज़ुअल स्टेट को डिज़ाइन करने के लिए वैरिएंट का इस्तेमाल करना लेख पढ़ें.
ट्रांज़िशन
ट्रांज़िशन से यह तय होता है कि कोई पैनल अपनी मौजूदा स्थिति fromVariant से नई स्थिति toVariant में कैसे जाता है. Event ट्रांज़िशन को ट्रिगर करता है. इससे यह तय होता है कि पैनल, स्थिति बदलने के दौरान किस ऐनिमेशन का इस्तेमाल करेगा. पैनल को अपनी मौजूदा स्थिति से toVariant पर ले जाना चाहिए. सिंक करने के लिए, कोर विंडो मैनेजर सभी ट्रांज़िशन को ऐनिमेट और कोऑर्डिनेट करता है.
- इवेंट: यूज़र इंटरफ़ेस (यूआई) में बदलाव शुरू करने वाला ट्रिगर. कोई ओईएम या सिस्टम, ट्रिगर को पहले से तय कर सकता है. उदाहरण के लिए,
_System_OnHomeEvent,_System_TaskOpenEventया नेविगेशन बटन को कस्टम तरीके से दबाना.
उदाहरण के लिए, Scalable UI, ट्रांज़िशन को ट्रिगर करने के लिए इवेंट का इस्तेमाल करता है. इन ट्रांज़िशन से, पैनल को एक वैरिएंट से दूसरे वैरिएंट में ऐनिमेट किया जाता है, ताकि यूज़र इंटरफ़ेस (यूआई) में डाइनैमिक बदलाव दिखाए जा सकें. स्केलेबल यूज़र इंटरफ़ेस (यूआई), इन बदलावों के बारे में अन्य सिस्टम ऐप्लिकेशन को बताता है, ताकि वे ज़रूरत के हिसाब से कॉन्टेंट में बदलाव कर सकें. एक्सएमएल में यूज़र इंटरफ़ेस (यूआई) के बीच संबंध तय करके, ये काम किए जा सकते हैं:
यूज़र इंटरफ़ेस (यूआई) के जटिल व्यवहारों के बारे में बताएं: यूज़र इंटरफ़ेस (यूआई) के जटिल इंटरैक्शन के बारे में बताएं.
विंडो सिस्टम व्यवस्थित करना: विंडो की पोज़िशन और लेयरिंग को कंट्रोल करें.
विज़ुअल थीम लागू करें: एक जैसी ब्रैंडिंग और डिज़ाइन का इस्तेमाल करें.
कोड को कम जटिल बनाएं: कस्टम कोड को ज़्यादा डेवलप करने की ज़रूरत को कम करें.
ज़्यादा जानने के लिए, ट्रांज़िशन कॉन्फ़िगर करना लेख पढ़ें.
सिस्टम यूज़र इंटरफ़ेस (यूआई) बटन
इन्टेंट ट्रिगर करने के अलावा, CarSystemBarButtons को event, selectedEvent, और unselectedEvent एट्रिब्यूट का इस्तेमाल करके टैप करने पर, स्केलेबल यूज़र इंटरफ़ेस (यूआई) इवेंट ट्रिगर किया जा सकता है.
event में उस इवेंट के बारे में बताया गया है जिसे बटन पर टैप करने पर ट्रिगर किया जाना है. अगर किसी इवेंट पर ज़्यादा विस्तृत कंट्रोल की ज़रूरत है, तो selectedEvent और unselectedEvent एट्रिब्यूट का इस्तेमाल करें. इनसे यह तय किया जा सकता है कि बटन के चुने जाने या चुने हुए का निशान हटाए जाने पर, कौनसा इवेंट ट्रिगर होगा.
सिस्टम यूआई को कब लागू करना चाहिए
इस सेक्शन में, स्केलेबल यूज़र इंटरफ़ेस (यूआई) के सबसे सही इस्तेमाल के बारे में बताया गया है.
- स्थायी मल्टीपैनल लेआउट बनाना
- डाइनैमिक होम सीन लागू करना
- कॉन्टेक्स्ट के हिसाब से ओवरले लागू करना
- मुश्किल पैनल इंटरैक्शन डिज़ाइन करना
एक से ज़्यादा पैनल वाले लेआउट को सेव करना
मल्टी-ज़ोन अनुभव बनाएं, जिसमें स्क्रीन के अलग-अलग हिस्सों को हमेशा के लिए खास फ़ंक्शन के लिए तय किया जाता है. उदाहरण के लिए, मीडिया कंट्रोल, क्लाइमेट स्ट्रिप या फ़ुल-स्क्रीन मैप.
नेविगेशन जैसे मुख्य ऐप्लिकेशन के लिए TaskPanels का इस्तेमाल करें. साथ ही, यूज़र इंटरफ़ेस (यूआई) एलिमेंट के लिए DecorPanels का इस्तेमाल करें. ये एलिमेंट, व्यू के तौर पर TaskPanels के बीच में रखे जाने चाहिए.
डाइनैमिक होम सीन लागू करना
एक ऐसा होम सीन लागू करें जिसमें एक साथ कई ऐप्लिकेशन पैनल दिखते हों और उनसे इंटरैक्ट किया जा सकता हो. उदाहरण के लिए, मैप, मीडिया प्लेयर, और ऐप्लिकेशन ग्रिड.
सभी काम के पैनल को उनके opened या default होम वैरिएंट में बदलने के लिए, _System_HomeEvent को कॉन्फ़िगर करें.
कॉन्टेक्स्ट के हिसाब से ओवरले लागू करना
ऐप्लिकेशन से बाहर के यूज़र इंटरफ़ेस (यूआई) एलिमेंट रखें. जैसे, कॉन्टेक्स्ट के हिसाब से विजेट, कस्टम ब्रैंडिंग, और ड्रैग बार. इन्हें ऐप्लिकेशन के टास्क के साथ ऐनिमेट किया जा सकता है.
सिर्फ़ सजावट या विजेट होस्ट करने वाले सभी एलिमेंट के लिए, DecorPanels का इस्तेमाल करें. अगर कोई विजेट, पूरी तरह से काम करने वाले और लॉन्च किए जा सकने वाले ऐप्लिकेशन को होस्ट करता है, तो Panel > TaskPanel सबसे सही विकल्प है. व्यू पर आधारित यूज़र इंटरफ़ेस (यूआई) एलिमेंट के लिए DecorPanels का इस्तेमाल करें. ऐसा तब करें, जब लेयरिंग को TaskPanel लेयरिंग के साथ सिंक करना हो.
मुश्किल पैनल इंटरैक्शन डिज़ाइन करना
उपयोगकर्ता की ओर से की जाने वाली बेहतर कार्रवाइयों को डिज़ाइन करें. जैसे, ऐप्लिकेशन पैनल का साइज़ डाइनैमिक तरीके से बदलना या मुख्य डिसप्ले के कॉन्टेंट के आधार पर इंस्ट्रूमेंट क्लस्टर के व्यू को अडजस्ट करना.
सिस्टम के स्टैंडर्ड Transitions के अलावा, किसी खास को ट्रिगर करने के लिए, कस्टम Events तय करें.
IVI लेआउट को यूनिफ़ाइड डिजिटल कॉकपिट तक पहुंचाना
स्केलेबल यूज़र इंटरफ़ेस (यूआई), SDV IVI वीएम में मौजूद मुख्य इन्फ़ोटेनमेंट डिसप्ले (display0) पर मल्टी-पैनल विंडोइंग (TaskPanel और DecorPanel) को मैनेज करता है. मुख्य डिसप्ले का लेआउट बदलने पर, इंस्ट्रुमेंट क्लस्टर के व्यू अपडेट करने के लिए, स्केलेबल यूज़र इंटरफ़ेस (यूआई) को डिसप्ले की सुरक्षा के साथ जोड़ा जा सकता है:
- स्केलेबल यूज़र इंटरफ़ेस (
SDV IVIवीएम): जब मुख्य डिसप्ले पर पैनल की स्थिति बदलती है, तो स्केलेबल यूज़र इंटरफ़ेस,xml/scalable_ui_actions.xmlमें<Action>का इस्तेमाल करके इंटेंट भेज सकता है. इससे क्लस्टर कॉम्पोनेंट को लेआउट या मोड में हुए बदलावों के बारे में सूचना मिलती है. ज़्यादा जानकारी के लिए, कार्रवाई कॉन्फ़िगर करना लेख पढ़ें. - DriverUI (
SDV IVIवीएम): यह क्लस्टर डिसप्ले (display1) पर चलता है. इसेClusterHomeManagerने लॉन्च किया है और इसेautomotive-design-composeकी मदद से बनाया गया है.DriverUIसुरक्षा से जुड़े क्लस्टर के अलावा अन्य कॉन्टेंट (जैसे कि मैप, मीडिया, और फ़ोन कॉल) रेंडर करता है. साथ ही, IVI सिस्टम से मिले अपडेट को हैंडल करता है. - IVI पर SDV Gateway (
SDV IVIVM):DriverUI, gRPC (driverui.proto) के ज़रिए High availability renderer (HAR) से कनेक्ट होने के लिएSDV Gateway Clientका इस्तेमाल करता है.DriverUI, क्लस्टर की स्थिति के अपडेट (जैसे कि लेआउट के वैरिएंट, थीम टोकन, और स्थान-भाषा में बदलाव) के साथ-साथ समय-समय पर हार्टबीट मैसेज भेजता है. HARऔर सेफ़्टी मॉनिटर (SDV Mediaवीएम): सुरक्षा से जुड़े ज़रूरी एलिमेंट (जैसे कि स्पीड, गियर, चेतावनी, चाइम, और पीछे के कैमरे के फ़ीड) को रेंडर करने के लिए, इन्हें अलगSDV Mediaवीएम में चलाएं.DriverUIसे हार्टबीट मिलने के दौरान,HARAndroid क्लस्टर क्षेत्रों को पारदर्शी रखता है, ताकिDriverUIका कॉन्टेंट,HARके सुरक्षा ओवरले के साथ मिल जाए. अगरSDV IVIबूट हो रहा है या उपलब्ध नहीं है, तोHARफ़ॉलबैक प्लेसहोल्डर दिखाता है.- ओईएम कॉन्फ़िगरेशन: इस फ़्लो को सेट अप करने के लिए,
SDV IVIपरxml/scalable_ui_actions.xmlमें<Event>ट्रिगर और<Action>इंटेंट कॉन्फ़िगर करें. साथ ही, सुरक्षा डिज़ाइन टूलचेन के लिए Figma डिज़ाइन फ़ाइल औरConfig.jsonसिग्नल मैपिंग अपडेट करें. इसके अलावा, टारगेट हार्डवेयर के लिए HAR प्लैटफ़ॉर्म ऐब्स्ट्रैक्शन लेयर (पीएएल) लागू करें.