सिस्टम यूज़र इंटरफ़ेस (यूआई) लागू करना

Android Automotive, एक नया सिस्टम यूज़र इंटरफ़ेस (यूआई) उपलब्ध कराता है, जिसे खास तौर पर वाहनों के लिए बनाया गया है. ज़्यादातर कॉम्पोनेंट के सिस्टम यूज़र इंटरफ़ेस (यूआई) को फ़्रेमवर्क सेवाओं के साथ अच्छी तरह से जोड़ा गया है. सिस्टम यूआई का मतलब स्क्रीन पर दिखाया जाने वाला वह एलिमेंट जो किसी ऐप्लिकेशन का हिस्सा नहीं है. Automotive System यूज़र इंटरफ़ेस (यूआई) ( CarSystemUI एलिमेंट पैकेज), Android सिस्टम यूज़र इंटरफ़ेस (यूआई) (सिस्टम यूज़र इंटरफ़ेस (यूआई) पैकेज में) का एक्सटेंशन है. जिसे खास तौर पर वाहनों के हिसाब से बनाया गया है.

सिस्टम यूज़र इंटरफ़ेस (यूआई) क्या है?

Automotive System यूज़र इंटरफ़ेस (यूआई) के खास कॉम्पोनेंट में ये शामिल हैं:

कॉम्पोनेंट ब्यौरा
लॉकस्क्रीन का यूज़र इंटरफ़ेस (यूआई) वह स्क्रीन जिसके ज़रिए किसी खास उपयोगकर्ता खाते के लिए उपयोगकर्ताओं की पुष्टि की जाती है.
नेविगेशन बार सिस्टम बार जिसे स्क्रीन के बाईं, नीचे या दाईं ओर रखा जा सकता है और अलग-अलग ऐप्लिकेशन पर नेविगेट करने के लिए फ़ेसेट बटन शामिल किए जा सकते हैं, सूचना पैनल को टॉगल किया जा सकता है, और वाहन के कंट्रोल उपलब्ध कराना, जैसे कि एचवीएसी. यह Android सिस्टम के यूज़र इंटरफ़ेस (यूआई) से अलग है लागू करने की सुविधा मिलती है. इससे 'वापस जाएं', 'होम', और 'ऐप्लिकेशन स्टैक' बटन मिलते हैं.
स्टेटस बार स्क्रीन के साथ मौजूद सिस्टम बार, जो नेविगेशन बार के तौर पर काम करता है. कॉन्टेंट बनाने स्टेटस बार में, इनके बारे में भी जानकारी दी जा सकती है:
  • कनेक्टिविटी आइकॉन. ब्लूटूथ, वाई-फ़ाई, और हॉटस्पॉट/मोबाइल कनेक्शन शामिल हैं.
  • पुलडाउन नोटिफ़िकेशन पैनल. उदाहरण के लिए, स्क्रीन पर सबसे ऊपर से नीचे की ओर स्वाइप करना.
  • अलर्ट करने की सुविधा (एचयूएन).
सिस्टम यूआई स्क्रीन पर दिखाए गए ऐसे किसी भी एलिमेंट के बारे में बताता है जो ऐप्लिकेशन का हिस्सा नहीं है.
उपयोगकर्ता स्विचर यूज़र इंटरफ़ेस (यूआई) वह स्क्रीन जिसके ज़रिए उपयोगकर्ता किसी दूसरे उपयोगकर्ता को चुन सकता है.
वॉल्यूम यूज़र इंटरफ़ेस (यूआई) जब ड्राइवर किसी डिवाइस पर वॉल्यूम बदलने के लिए, फ़िज़िकल वॉल्यूम बटन का इस्तेमाल करता है, तब डायलॉग दिखता है डिवाइस.

सिस्टम यूज़र इंटरफ़ेस (यूआई) कैसे काम करता है?

सिस्टम यूज़र इंटरफ़ेस (यूआई), एक Android ऐप्लिकेशन है. यह डिवाइस के चालू होने पर काम करता है. कॉन्टेंट बनाने ऐप की शुरुआत प्रतिबिंब से होती है SystemServer. सिस्टम यूज़र इंटरफ़ेस (यूआई) के उपयोगकर्ताओं को दिखने वाले पहलुओं के लिए सबसे सही एंट्री पॉइंट नीचे दिए गए हैं. Android System के यूज़र इंटरफ़ेस (यूआई) को वाहन की खास सुविधाओं के हिसाब से बनाने के लिए, इन कॉम्पोनेंट का इस्तेमाल करें.

  • config_statusBarComponent
  • config_systemUIFactoryComponent

CarSystemUI, सिस्टम यूज़र इंटरफ़ेस (यूआई) पैकेज का एक एक्सटेंशन है. इसका मतलब है कि क्लास और सिस्टम यूज़र इंटरफ़ेस (यूआई) पैकेज में मौजूद संसाधनों को CarSystemUI पैकेज से इस्तेमाल और ओवरराइड किया जा सकता है.

सिस्टम यूज़र इंटरफ़ेस (यूआई) को पसंद के मुताबिक बनाएं

ओवरले

सिस्टम यूज़र इंटरफ़ेस (यूआई) को पसंद के मुताबिक बनाने के लिए, Android सोर्स कोड में बदलाव किया जा सकता है. ऐसा करने से, आने वाले समय में Android के अपडेट लागू करना ज़्यादा मुश्किल और मुश्किल हो जाएगा. इसके बजाय, Android पर ओवरले डायरेक्ट्री के इस्तेमाल के साथ काम करता है. इससे रिसॉर्स फ़ाइलों को बिना बदलाव किए ही बदला जा सकता है सोर्स कोड में बदलाव कर रहे हैं. Android बिल्ड सिस्टम में, ओवरले सिस्टम नियंत्रित किया जा सकता है. बदलाव की गई सभी फ़ाइलों को साफ़ तौर पर पहचाना जा सकता है. इसके लिए, उन्हें पूरी फ़ाइल को AOSP सोर्स कोड का ट्री.

ओवरले फ़ाइलों को PRODUCT_PACKAGE_OVERLAYS डायरेक्ट्री में डाला जाना चाहिए. साथ ही, यह ज़रूरी है कि इन फ़ाइलों में बिलकुल वही सब-फ़ोल्डर, जो ओरिजनल AOSP रूट स्ट्रक्चर की तरह हैं. Android के लिए 10 या उससे ज़्यादा, PRODUCT_PACKAGE_OVERLAYS इस पर सेट है:

PRODUCT_PACKAGE_OVERLAYS := packages/services/Car/car_product/overlay

Automotive System के यूज़र इंटरफ़ेस (यूआई), सिस्टम यूज़र इंटरफ़ेस (यूआई) और CarSystemUI पैकेज के संसाधनों का इस्तेमाल करता है. इसका मतलब है कि हर जगह के संसाधनों को ओवरले से बदला जा सकता है. Automotive System के यूज़र इंटरफ़ेस (यूआई) का लुक और स्टाइल.

किसी फ़ाइल को बदलने के लिए, /overlay डायरेक्ट्री को आपने चुना है और फिर उसमें बदलाव को शामिल किया है डायरेक्ट्री. उदाहरण के लिए:

frameworks/base/packages/CarSystemUI/res/layout/super_status_bar.xml

यहां मौजूद super_status_bar.xml फ़ाइल की जगह दूसरी फ़ाइल जोड़ें:

packages/services/Car/car_product/overlay/frameworks/base/packages/CarSystemUI/res/layout/

frameworks/base/packages/SystemUI/res/values/config.xml को बदलने के लिए, (सिस्टम यूज़र इंटरफ़ेस (यूआई), not CarSystemUI में), रीप्लेसमेंट config.xml फ़ाइल को यहां जोड़ें:

packages/services/Car/car_product/overlay/frameworks/base/packages/SystemUI/res/layout/

या

packages/services/Car/car_product/overlay/frameworks/base/packages/CarSystemUI/res/layout/

प्रॉडक्ट को पसंद के मुताबिक बनाने के दो मुख्य एंट्री पॉइंट की जानकारी नीचे दी गई है.

Automotive System के यूज़र इंटरफ़ेस (यूआई) में तीन नेविगेशन बार हो सकते हैं. ये बार, नेविगेशन बार की बाईं, नीचे, और दाईं ओर होते हैं स्क्रीन. हर सिस्टम बार के दिखने की सेटिंग को, नीचे दिए गए कॉन्फ़िगरेशन के साथ टॉगल किया जाता है:

  • config_enableLeftSystemBar
  • config_enableBottomSystemBar
  • config_enableRightSystemBar

हर बार में एक प्रावधान की गई और प्रावधान नहीं की गई स्थिति होती है जिसे संबंधित लेआउट फ़ाइलें:

  • car_left_system_bar.xml
  • car_left_system_bar_unprovisioned.xml
  • car_system_bar.xml (सबसे नीचे वाले नेविगेशन बार का लेआउट)
  • car_system_bar_unprovisioned.xml
  • car_right_system_bar.xml
  • car_right_system_bar_unprovisioned.xml

इन लेआउट में com.android.systemui.car.systembar.CarSystemBarView टॉप लेवल पर है, जो यह कर सकता है: अन्य आवश्यक दृश्य शामिल करें. नेविगेशन बार के अंदर मौजूद बटन शामिल करने के लिए, इनका इस्तेमाल किया जा सकता है com.android.systemui.car.systembar.CarSystemBarButton.

व्यू में बढ़ोतरी, CarSystemBar#createSystemBar में हुई है, अगर डिवाइस में किसी उपयोगकर्ता के लिए सही तरीके से प्रावधान किया गया है.

स्टेटस बार

स्टेटस बार को नेविगेशन बार के तौर पर देखें. इसमें अतिरिक्त सुविधाएं भी मिलती हैं. नेविगेशन को नापसंद करें बार है, तो इसे बंद करने के लिए स्टेटस बार में कोई फ़्लैग नहीं है. स्टेटस बार में बदलाव करने के लिए, इनका इस्तेमाल किया जा सकता है:

  • car_top_navigation_bar.xml
  • car_top_navigation_bar_unprovisioned.xml

इन लेआउट में com.android.systemui.statusbar.car.CarNavigationBarView होना ज़रूरी है टॉप लेवल पर. स्टेटस बार में स्थिति आइकॉन होते हैं. किसी आइकॉन का साइज़ बदलने के लिए, कोई खास साइज़ तय करने के बजाय, स्केल फ़ैक्टर के साथ एक जैसा आइकॉन. उदाहरण के लिए, किसी ओवरले में फ़ाइल /overlay/frameworks/base/packages/CarSystemUI/res/values/dimens.xml, जोड़ें आइकॉन का साइज़ दोगुना करने के लिए, इन डाइमेंशन का इस्तेमाल किया जा सकता है:

<resources>
    <!-- The amount by which to scale up the status bar icons.-->
    <item name="status_bar_icon_scale_factor" format="float" type="dimen">2</item>
</resources>

स्टेटस बार एक खास विंडोिंग लेयर में होता है, जिसमें यह भी शामिल होता है सूचना पैनल, उपयोगकर्ता स्विचर, अलर्ट करने वाले उपयोगकर्ता (एचयूएन), और कीगार्ड. इनके लिए विभिन्न लेआउट में शामिल हैं super_status_bar.xml.

सिस्टम यूज़र इंटरफ़ेस (यूआई) के सोर्स कोड में बदलाव

ऐसा हो सकता है कि ओवरले से, सिस्टम यूज़र इंटरफ़ेस (यूआई) के काम करने के तरीके को ज़रूरत के मुताबिक बनाने की सुविधा न मिले.

सूचना. Android के सोर्स कोड में किए गए बदलावों को अपडेट करना मुश्किल है Android के बाद के रिलीज़ में हमारा सुझाव है कि आप Automotive System के यूज़र इंटरफ़ेस (यूआई) कोड की अवधि बढ़ाएं तो कोड में बदलाव करने की ज़रूरत नहीं है. इस तरह से, Automotive System के यूज़र इंटरफ़ेस (यूआई) का सोर्स कोड को न्यूनतम मर्ज विरोधाभासों के साथ अपग्रेड किया जा सकता है, क्योंकि सभी कस्टमाइज़ेशन इसके माध्यम से जाने-पहचाने एपीआई प्लैटफ़ॉर्म की ज़रूरत होती है.

सिस्टम यूज़र इंटरफ़ेस (यूआई) के ज़्यादातर पहलुओं को इन दो एंट्री पॉइंट से पसंद के मुताबिक बनाया जा सकता है:

  • config_statusBarComponent
  • config_systemUIFactoryComponent

उदाहरण के लिए, अगर आप com.android.systemui.statusbar.car.custom.CustomCarStatusBar, जो CarStatusBar तक बढ़ाएं, config_statusBarComponent को पॉइंट तक अपडेट करें इस नए कॉम्पोनेंट का इस्तेमाल करें. इस क्लास को बढ़ाने से, ज़्यादा से ज़्यादा उन एलिमेंट को पसंद के मुताबिक बनाया जा सकता है जो सिस्टम बार और सूचना के लॉजिक में जोड़ दिया जाएगा.

इसी तरह, आप CustomCarSystemUIFactory बनाकर उसे इसमें रख सकते हैं config_systemUIFactoryComponent. इस क्लास का इस्तेमाल VolumeUI और लॉकस्क्रीन.

उपयोगकर्ता स्विच करने और अनलॉक करने की प्रक्रिया को पसंद के मुताबिक बनाएं

यहां दिए गए कॉन्टेंट में, उपयोगकर्ता के स्विच करने के अनुभव को अपनी पसंद के मुताबिक बनाने का तरीका बताया गया है.

शब्द ब्यौरा
कीगार्ड फ़ोरग्राउंड ऐप्लिकेशन में गलती से होने वाले इंटरैक्शन को रोकने के लिए, फ़ुलस्क्रीन डायलॉग बॉक्स. कई उपयोगकर्ताओं के सेट अप होने पर, हर उपयोगकर्ता की निजता की सुरक्षा की जाती है.
डायलॉग लोड हो रहा है उपयोगकर्ताओं के बीच स्विच करते समय लोड होने वाली स्क्रीन.
लॉकस्क्रीन, बाउंसर वह स्क्रीन जिसमें व्यक्ति को पिन, पैटर्न या पासवर्ड डालने की ज़रूरत है.
उपयोगकर्ता Android उपयोगकर्ता.
उपयोगकर्ता पिकर डिवाइस को चालू करने के बाद, उपयोगकर्ता पिकर की स्क्रीन दिखती है.
उपयोगकर्ता स्विचर QuickSettings से स्क्रीन स्विच करने पर, उपयोगकर्ता स्विचर दिखता है.

उपयोगकर्ता स्विच करने को पसंद के मुताबिक बनाएं

कीगार्ड और बाउंसर

Android Automotive OS में, यूज़र पिकर वाली कीगार्ड स्क्रीन सिर्फ़ दिखती है जब कोई उपयोगकर्ता लॉकस्क्रीन पर 'रद्द करें' बटन पर क्लिक करता है. कीगार्ड स्क्रीन नीचे दिखाई गई है.

कीगार्ड स्क्रीन

पहली इमेज. कीगार्ड स्क्रीन

बाउंसर वाली लॉकस्क्रीन तब दिखती है, जब उपयोगकर्ता किसी निजता टाइप को चुन लेता है डिवाइस अनलॉक करें, जैसा कि नीचे दिखाया गया है.

लॉक-स्क्रीन

दूसरी इमेज. लॉक स्क्रीन.

जब पावर को मैन्युअल रूप से चालू या बंद करने के लिए लॉक को सेट किया जाता है, तो नीचे दिए गए निर्देश का इस्तेमाल करें:

adb shell input keyevent 26

उपयोगकर्ता पिकर

यूज़र पिकर स्क्रीन तब दिखती है, जब कोई डिवाइस कार के सिस्टम यूज़र इंटरफ़ेस (यूआई) स्टेटस बार से जुड़ा होता है और Maps को फिर से चालू किया जाए. इस बारे में ज़्यादा जानने के लिए, यह देखें FullscreenUserSwitcher.

स्क्रीन लोड हो रही है

तीसरी इमेज. यूज़र पिकर स्क्रीन

इस स्क्रीन के लेआउट को car_fullscreen_user_switcher.xml.

स्क्रीन लोड हो रही है

जब भी उपयोगकर्ता स्विच करता है, तब लोड होने वाली स्क्रीन दिखती है. भले ही, एंट्री पॉइंट कोई भी हो. इसके लिए यूज़र पिकर या सेटिंग स्क्रीन से दिया जा सकता है. लोड होने वाली स्क्रीन, फ़्रेमवर्क सिस्टम यूज़र इंटरफ़ेस (यूआई) और एनटाइटलमेंट वाली सार्वजनिक क्लास के मैप CarUserSwitchingDialog. उदाहरण के लिए ऊपर इमेज 3 देखें.

थीम को Theme_DeviceDefault_Light_Dialog_Alert_UserSwitchingDialog.

Android उपयोगकर्ता सेट करने के लिए, शुरुआती सेटअप विज़र्ड फ़्लो, ड्राइवर को उपयोगकर्ता सेट अप करने की सुविधा देता है एक नाम की ज़रूरत होती है. अगर इसके बाद ड्राइवर Android उपयोगकर्ता को किसी Google खाते से जोड़ता है, तो उस खाते से नाम चुना गया है. हालांकि, अगर ड्राइवर कोई नाम तय करता है, जैसे कि ड्राइवरB, और बाद में उस उपयोगकर्ता नाम को अपने Google खाते में Maddy के नाम से संबद्ध करता है, मूल रूप से असाइन किया गया नाम (DriverB) बदला नहीं गया है, क्योंकि वह नाम साफ़ तौर पर सेट किया गया था. ड्राइवर नाम सिर्फ़ सेटिंग मेन्यू में बदला जा सकता है.

लेआउट को car_user_switching_dialog.xml. में पसंद के मुताबिक बनाया जा सकता है

OEM, इस नाम वाली थीम का इस्तेमाल करके, स्टेटस और नेविगेशन बार को छिपा सकता है NoActionBar.Fullscreen. (यह ओरिजनल सिस्टम यूज़र इंटरफ़ेस (यूआई) है, जिसे कार रेफ़रंस यूआई के लिए अपडेट किया गया है.) ज़्यादा जानकारी के लिए, यह देखें पसंद के मुताबिक बनाएं.

OEM, उपयोगकर्ताओं को स्विच करने के लिए यूज़र इंटरफ़ेस के एंट्री पॉइंट उपलब्ध करा सकते हैं. हालांकि, कभी-कभी नतीजे ऐसे हो सकते हैं अवांछनीय. अगर ऐसा होता है, तो:

  1. OEM, पसंद के मुताबिक लोड होने वाली स्क्रीन (या डायलॉग) बनाता है और दिखाता है.
    • उपयोगकर्ता अनुभव के हिसाब से, ओईएम कस्टम लोडिंग स्क्रीन लॉन्च करता है. ऐसा तब होता है, जब कोई उपयोगकर्ता ऐसा करने के लिए साधन चुनता है स्विच को छिपा दिया जाता है, जिसे उपयोगकर्ता के स्विच करने की प्रोसेस पूरी होने पर छिपाया जा सकता है.
    • OEM को प्राथमिकता विंडो को अपनी प्राथमिकता के अनुसार बदल सकते हैं. उदाहरण के लिए, ज़्यादा प्राथमिकता वाली विंडो टाइप. सबसे ज़्यादा काम के नतीजे प्राथमिकता, कीगार्ड से ज़्यादा नहीं हो सकती.
  2. OEM, config_customUserSwitchUi=true को मुख्य फ़्रेमवर्क में सेट करता है config.xml, जैसा कि config_customuserswitchui में बताया गया है. बतौर नतीजे में, फ़्रेमवर्क CarUserSwitchingDialog को नहीं दिखाता है.

लॉकस्क्रीन को पसंद के मुताबिक बनाएं

लॉकस्क्रीन, सिस्टम यूज़र इंटरफ़ेस (यूआई) का अहम हिस्सा होती है. इसे OEM अपनी पसंद के मुताबिक सेट कर सकता है. फ़्लो को अपनी पसंद के मुताबिक बनाने के लिए, frameworks/base/packages/CarSystemUI/ से शुरू करें.

नए उपयोगकर्ता के सेटअप को पसंद के मुताबिक बनाएं

सेटअप विज़र्ड पहली बार उपयोगकर्ता सेटअप करता है. इसे भी अपनी पसंद के मुताबिक बनाया जा सकता है. आप का इस्तेमाल करें UserManager एपीआई का इस्तेमाल करें. कुछ मामलों में, इसे बैकग्राउंड में लागू किया जा सकता है. इससे सेटअप विज़र्ड प्रोसेस में शामिल हो सकते हैं.