Android Automotive OS, कार चलाते समय इस्तेमाल करने के लिए बनाए गए ऐप्लिकेशन के साथ-साथ, पार्किंग में कार के खड़े होने पर इस्तेमाल करने के लिए, ब्राउज़र, गेम, और वीडियो ऐप्लिकेशन के साथ भी काम करता है. कारों में वही ऐप्लिकेशन शिप किया जा सकता है जो अन्य बड़ी स्क्रीन वाले डिवाइसों में शिप किया जाता है. इसके लिए, आपको कुछ छोटे बदलाव करने होंगे.
Android Automotive OS के एम्युलेटर पर, अपने मौजूदा ऐप्लिकेशन की जांच करें
Android Automotive OS के लिए अपना ऐप्लिकेशन बनाना शुरू करने के लिए, पहले अपने मौजूदा Android Automotive OS एम्युलेटर पर मौजूद ऐप्लिकेशन. एमुलेटर सेट अप करने के लिए, Android Automotive OS एमुलेटर का इस्तेमाल करके टेस्ट करना में दिया गया तरीका अपनाएं. इसके बाद, एम्युलेटर पर अपना ऐप्लिकेशन चलाना लेख में दिए गए निर्देशों का पालन करके, ऐप्लिकेशन को चलाया जा सकता है.
अपना ऐप्लिकेशन चलाते समय, साथ काम करने से जुड़ी समस्याओं पर नज़र रखें, जैसे कि फ़ॉलो किया जा रहा है:
- सूचना और मनोरंजन की सुविधा देने वाली स्क्रीन की स्क्रीन की दिशा (ओरिएंटेशन) तय की गई है. शर्तें पूरी करने के लिए कार ऐप्लिकेशन की क्वालिटी के लिए दिशा-निर्देश, ऐप्लिकेशन पर पोर्ट्रेट और लैंडस्केप, दोनों वर्शन काम करना चाहिए ओरिएंटेशन.
- ऐसा हो सकता है कि अन्य डिवाइसों पर उपलब्ध एपीआई, Android Automotive OS पर उपलब्ध न हों. उदाहरण के लिए, Google Play services के कुछ एपीआई, Android Automotive OS पर उपलब्ध नहीं हैं. इन समस्याओं को हल करने के तरीके के बारे में जानने के लिए, सुविधाएं बंद करना सेक्शन देखें.
अपने ऐप्लिकेशन की मेनिफ़ेस्ट फ़ाइलों को कॉन्फ़िगर करना
Android Automotive OS को टारगेट करने के लिए, आपके ऐप्लिकेशन में कुछ मेनिफ़ेस्ट एंट्री होनी चाहिए. इनकी मदद से, Android Automotive OS को टारगेट करने वाले ऐप्लिकेशन, Automotive OS के रिलीज़ टाइप का इस्तेमाल करके Play Store में सबमिट किए जाते हैं. उन्हें रोका गया है मैनुअल समीक्षा प्रक्रिया का इस्तेमाल किया हो, ताकि यह पक्का किया जा सके कि कार में उनका इस्तेमाल किया जा सकता है या नहीं. ज़्यादा जानकारी के लिए, कार के लिए Android ऐप्लिकेशन डिस्ट्रिब्यूट करें पर जाएं विवरण.
Android Automotive OS की ज़रूरी सुविधाएं
Android Automotive OS के लिए बनाए गए ऐप्लिकेशन, कार में Play Store पर तब ही दिखेंगे, जब उनकी AndroidManifest.xml
फ़ाइल में यह <uses-feature>
एलिमेंट शामिल होगा:
<manifest ...>
...
<uses-feature
android:name="android.hardware.type.automotive"
android:required="true" />
...
</manifest>
वाहन संबंधित ट्रैक पर सबमिट किए गए ऐप्लिकेशन, <uses-feature>
के बारे में जानकारी नहीं दे सकते
पिछले कोड सैंपल में दिखाया गया एलिमेंट दिखाया गया है, क्योंकि ये एलिमेंट पर निर्भर नहीं हो सकते
खास तरह का हार्डवेयर. इसलिए, एक ही ऐप्लिकेशन को वाहन संबंधित और
गैर-ऑटोमोटिव डिवाइस के लिए, आपको अपने ऐप्लिकेशन के कम से कम दो फ़्लेवर जनरेट करने होंगे:
एक ऑटोमोटिव डिवाइस के लिए और दूसरा मोबाइल डिवाइस के लिए. Reader Revenue Manager को सेट अप करने के बारे में
इन अलग-अलग फ़्लेवर को बनाने का तरीका जानने के लिए, नीचे दिया गया दस्तावेज़ देखें:
ऐप्लिकेशन के दोनों वर्शन का पैकेज एक ही हो सकता है. हालांकि, दोनों वर्शन के लिए अलग-अलग वर्शन कोड होने चाहिए, क्योंकि इन्हें Play Store के अलग-अलग ट्रैक पर अपलोड किया जाता है.
अलग-अलग फ़्लेवर का इस्तेमाल करने के बजाय, अलग पैकेज का इस्तेमाल किया जा सकता है आपके मोबाइल और Automotive APKs या ऐप्लिकेशन बंडल के नाम. यह समझने के लिए आपको फ़ायदा हो सकता है. ज़्यादा जानकारी के लिए, पैकेज के नाम देखें.
पिछले कोड नमूने में दिखाए गए एलिमेंट के अलावा, इन कामों के लिए बनाए गए ऐप्लिकेशन
Android Automotive OS में ये <uses-feature>
एलिमेंट शामिल होने चाहिए
रूट <manifest>
एलिमेंट:
<uses-feature
android:name="android.hardware.wifi"
android:required="false"/>
<uses-feature
android:name="android.hardware.screen.portrait"
android:required="false"/>
<uses-feature
android:name="android.hardware.screen.landscape"
android:required="false"/>
इन सुविधाओं को साफ़ तौर पर 'ज़रूरी नहीं है' के तौर पर सेट करने से, यह पक्का करने में मदद मिलती है कि आपका ऐप्लिकेशन, Android Automotive OS डिवाइसों में उपलब्ध हार्डवेयर सुविधाओं के साथ काम करता है.
पक्का करें कि ध्यान भटकाने वाली कोई गतिविधि न हो
यह पक्का करने के लिए कि आपका ऐप्लिकेशन सिर्फ़ पार्किंग के दौरान इस्तेमाल के लिए उपलब्ध हो, अपने मेनिफ़ेस्ट में किसी भी <activity>
एलिमेंट में यह <meta-data>
एलिमेंट शामिल न करें:
<!-- NOT ALLOWED -->
<meta-data
android:name="distractionOptimized"
android:value="true"/>
इस मेटाडेटा के बिना, कार के ड्राइविंग मोड में जाने पर, ओएस आपके ऐप्लिकेशन की गतिविधियों को अपने-आप ब्लॉक कर देता है. ऐसा इसलिए किया जाता है, ताकि ड्राइवर का ध्यान न भटके. यह onPause
लाइफ़साइकल कॉलबैक के तौर पर होता है. इस दौरान, आपको अपने ऐप्लिकेशन से वीडियो और ऑडियो, दोनों का प्लेबैक रोकना होगा.
कैटगरी के हिसाब से मेनिफ़ेस्ट एंट्री
पार्क किए गए सभी ऐप्लिकेशन पर लागू होने वाली पिछली ज़रूरी शर्तों के अलावा, वीडियो और गेम की कैटगरी के लिए, अन्य ज़रूरी शर्तें भी लागू होती हैं:
- वीडियो ऐप्लिकेशन के लिए, अपने ऐप्लिकेशन को वीडियो ऐप्लिकेशन के तौर पर मार्क करना लेख पढ़ें.
- गेम के लिए, अपने ऐप्लिकेशन को गेम के तौर पर मार्क करना लेख पढ़ें.
Android Automotive OS के लिए अपने ऐप्लिकेशन को ऑप्टिमाइज़ करें
अपने उपयोगकर्ताओं को सबसे अच्छा अनुभव देने के लिए, नीचे दी गई चीज़ें रखें Android Automotive OS के लिए अपना ऐप्लिकेशन बनाते समय.
बड़ी स्क्रीन के लिए ऑप्टिमाइज़ करना
Android Automotive OS वाले वाहनों में मौजूद स्क्रीन, फ़ोन के मुकाबले टैबलेट और फ़ोल्ड किए जा सकने वाले डिवाइसों के साइज़, रिज़ॉल्यूशन, और आसपेक्ट रेशियो से ज़्यादा मिलती-जुलती होती हैं. इसलिए, बड़ी स्क्रीन के लिए अपने ऐप्लिकेशन को ऑप्टिमाइज़ करने से, कार में भी आपके उपयोगकर्ताओं को फ़ायदा मिलता है.
खास तौर पर, बड़े डिसप्ले साइज़ का ज़्यादा से ज़्यादा फ़ायदा पाने के बारे में जानने के लिए, अलग-अलग स्क्रीन साइज़ के साथ काम करना और अपने यूज़र इंटरफ़ेस (यूआई) को रिस्पॉन्सिव लेआउट पर माइग्रेट करना से जुड़ी गाइड देखें. साथ ही, डिज़ाइन के लिए प्रेरणा और दिशा-निर्देश पाने के लिए, मीडिया और गेम की गैलरी देखें.
बड़ी स्क्रीन को ऑप्टिमाइज़ करने की अन्य सुविधाएं, जैसे कि इनपुट साथ काम करता है या नहीं Android Automotive OS के लिए शायद सीधे तौर पर कोई फ़ायदा न हो. हालांकि, उपयोगकर्ता अनुभव को बेहतर बनाना. उदाहरण के लिए, कीबोर्ड नेविगेशन में उन एपीआई का इस्तेमाल किया जाता है जिनका इस्तेमाल रोटरी नेविगेशन में किया जाता है. इसलिए, इन एपीआई को ऑप्टिमाइज़ करने से, दोनों फ़ॉर्म फ़ैक्टर को फ़ायदा मिल सकता है.
विंडो इनसेट और डिसप्ले कटआउट के साथ काम करना
Android Automotive OS में सिस्टम यूज़र इंटरफ़ेस (यूआई) शामिल है. यह अन्य डिवाइस टाइप के हिसाब से भी उपलब्ध है एलिमेंट, जैसे कि स्टेटस और नेविगेशन बार और नॉन-रेक्टैंग्युलर के लिए सहायता दिखाता है.
डिफ़ॉल्ट रूप से, ऐप्लिकेशन ऐसे इलाके में काम करते हैं जो सिस्टम बार को ओवरलैप नहीं करता या डिसप्ले कटआउट का इस्तेमाल करें. हालांकि, हो सकता है कि आप अपने ऐप्लिकेशन में सिस्टम बार छिपाना चाहें, उनके पीछे कॉन्टेंट दिखाना चाहें या विंडो इनसेट में अपने ऐप्लिकेशन का लेआउट तय करना में बताए गए तरीके के मुताबिक, डिसप्ले कटआउट में कॉन्टेंट दिखाना चाहें. अगर आपका ऐप्लिकेशन इनमें से कोई भी काम करता है, तो Android Automotive OS डिवाइसों के पूरे नेटवर्क पर अपने ऐप्लिकेशन को अच्छी तरह से काम करने देने के तरीके के बारे में जानने के लिए, नीचे दिए गए सब-सेक्शन देखें.
सिस्टम बार, इमर्सिव मोड, और एज-टू-एज रेंडरिंग
कार में सिस्टम बार का साइज़ और पोज़िशन, अन्य डिवाइसों के मुकाबले अलग हो सकती है. उदाहरण के लिए, नेविगेशन बार को बाईं ओर रखा जा सकता है, स्क्रीन के निचले हिस्से पर. यहां तक कि ऐसे मामले में जहां स्टेटस बार चालू हो सबसे नीचे एक नेविगेशन बार होता है (जैसा कि ज़्यादातर फ़ोन और और टैबलेट), तो इन एलिमेंट का साइज़ कारों में काफ़ी ज़्यादा होगा.
इसके अलावा, Android Automotive OS की मदद से OEM यह कंट्रोल कर सकते हैं कि ऐप्लिकेशन, इमर्सिव मोड में जाने और उससे बाहर निकलने के लिए, सिस्टम बार दिखाएं या छिपाएं. उदाहरण के लिए, ऐप्लिकेशन को सिस्टम बार छिपाने से रोककर, OEM यह पक्का कर सकते हैं कि वाहन के कंट्रोल, जैसे कि क्लाइमेट कंट्रोल हमेशा स्क्रीन पर ऐक्सेस किए जा सकें. अगर किसी OEM ने ऐप्लिकेशन को
सिस्टम बार को कंट्रोल नहीं करता है, तो कुछ भी नहीं होता जब कोई ऐप्लिकेशन
WindowInsetsController
(या WindowInsetsControllerCompat
)
सिस्टम बार दिखाने या छिपाने के लिए एपीआई. show
का दस्तावेज़ देखें और
hide
यह पता लगाने के तरीके के बारे में ज़्यादा जानें कि आपका ऐप्लिकेशन
इनसेट.
इसी तरह, OEM यह भी कंट्रोल कर सकते हैं कि ऐप्लिकेशन, सिस्टम बार का रंग और पारदर्शिता सेट कर सकते हैं या नहीं. इससे यह पक्का किया जा सकता है कि बार और उनमें मौजूद एलिमेंट हर समय साफ़ तौर पर दिखें. अगर आपका ऐप्लिकेशन, स्क्रीन के किनारों तक दिखता है, तो पक्का करें कि सिस्टम बार के पीछे सिर्फ़ ग़ैर-ज़रूरी कॉन्टेंट दिखे. अगर डिवाइस OEM, रंग को सेट करने से रोकता है, तो हो सकता है कि यह कॉन्टेंट न दिखे की ट्रांसलूसेंसी जैसी दिखती है.
<!-- Depending on OEM configuration, these style declarations
(and the corresponding runtime calls) may be ignored -->
<style name="...">
<item name="android:statusBarColor">...</item>
<item name="android:navigationBarColor">...</item>
<item name="android:windowTranslucentStatus">...</item>
<item name="android:windowTranslucentNavigation">...</status>
</style>
अगर आपका ऐप्लिकेशन एक से दूसरे किनारे तक जाता है, तो ऐप्लिकेशन के साइज़, संख्या, का टाइप या लोकेशन बार में शामिल किया जाता है. इसके बजाय, लेआउट बनाने के लिए विंडो इनसेट एपीआई का इस्तेमाल करें आपके ऐप्लिकेशन का कॉन्टेंट, सिस्टम बार से जुड़ा होता है. इन एपीआई को इस्तेमाल करने के तरीके के बारे में ज़्यादा जानने के लिए, अपने ऐप्लिकेशन में कॉन्टेंट को किनारे से किनारे तक दिखाना लेख पढ़ें. हार्ड कोड की गई पैडिंग वैल्यू, जो सुझाव कभी नहीं दिया जाता. ये अन्य डिवाइसों पर कॉन्टेंट को सुरक्षित जगह पर रख सकते हैं कार में नहीं होता.
अनियमित आकार के डिसप्ले में फ़िट हो जाता है
रेक्टैंगल डिसप्ले के अलावा, कुछ वाहनों में अनियमित आकार की स्क्रीन हो सकती हैं. जैसे, पहली इमेज में दिखाया गया है:
अगर आपका ऐप्लिकेशन किनारों तक रेंडर नहीं होता है, तो उसे सुरक्षित क्षेत्र में रेंडर करने के लिए, आपको कुछ करने की ज़रूरत नहीं है.
अगर आपका ऐप्लिकेशन किनारों तक रेंडर होता है, तो आपके पास यह चुनने का विकल्प होता है कि डिसप्ले में मौजूद कटिंग आउट के हिसाब से, ऐप्लिकेशन को कैसे दिखाया जाए. इसके लिए, संसाधनों का इस्तेमाल करके, अपने ऐप्लिकेशन की थीम के लिए android:windowLayoutInDisplayCutoutMode
एट्रिब्यूट को सेट करें. इसके अलावा, रनटाइम के दौरान विंडो के layoutInDisplayCutoutMode
एट्रिब्यूट में बदलाव करके भी ऐसा किया जा सकता है.
Android Automotive OS डिवाइसों पर मौजूद डिसप्ले कटआउट, मोबाइल डिवाइसों पर मौजूद कटआउट से अलग होते हैं. इसलिए, LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT
या LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES
का इस्तेमाल न करें. इनका व्यवहार, मोबाइल डिवाइसों पर मौजूद कटआउट के लिए ऑप्टिमाइज़ किया गया है. इसके बजाय,
LAYOUT_IN_DISPLAY_CUTOUT_MODE_NEVER
का इस्तेमाल करें
या LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS
कटआउट से हमेशा बचें या हमेशा कटआउट का इस्तेमाल करें. बाद वाले विकल्प को चुनते समय,
ज़्यादा जानकारी के लिए, डिसप्ले कटआउट की सुविधा देखें
डिसप्ले कटआउट से जुड़े एपीआई के बारे में जानकारी.
अगर आपका ऐप्लिकेशन, डिसप्ले कटआउट एरिया में रेंडर होता है और आपको Android Automotive OS और मोबाइल के बीच क्या अलग-अलग व्यवहार है, देखें अगर आपका ऐप्लिकेशन इसे सेट करता है, तो दिशा-निर्देश के लिए सुविधाओं को बंद करें और वैकल्पिक संसाधनों का इस्तेमाल करें. ऐसा तब करें, जब ऐप, संसाधन फ़ाइलों का इस्तेमाल करके यह तरीका सेट करता है.
सुविधाएं बंद करना
अगर आपको Android Automotive OS पर कोई मौजूदा मोबाइल ऐप्लिकेशन उपलब्ध कराना है, तो ऐसा हो सकता है कि कुछ सुविधाएँ और फ़ंक्शन काम के न हों या उपलब्ध न हों. इसके लिए उदाहरण के लिए, कारें आम तौर पर कैमरे की ऐक्सेस नहीं देती हैं. इसके अलावा, सिर्फ़ Google Play services के सबसेट, Android Automotive OS पर उपलब्ध हैं; देखें ज़्यादा जानकारी के लिए, कार के लिए Google Play services विवरण.
PackageManager.hasSystemFeature
एपीआई का इस्तेमाल करके, यह पता लगाया जा सकता है कि ऐप्लिकेशन Android Automotive OS पर चल रहा है या नहीं. इसके लिए, FEATURE_AUTOMOTIVE
सुविधा की जांच करें, जैसा कि इस उदाहरण में दिखाया गया है:
Kotlin
val packageManager: PackageManager = ... // Get a PackageManager from a Context val isCar = packageManager.hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE) if (isCar) { // Enable or disable a given feature }
Java
PackageManager packageManager = ... // Get a PackageManager from a Context boolean isCar = packageManager.hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE) if (isCar) { // Enable or disable a given feature }
इसके अलावा, अगर आपके ऐप्लिकेशन में Android Auto का कॉम्पोनेंट भी है, तो CarConnection API का इस्तेमाल Android for Cars ऐप्लिकेशन की लाइब्रेरी से यह पता लगाया जा सकता है कि ऐप्लिकेशन को Android Automotive OS या Android Auto पर चल रहे हों—या कनेक्ट न होने पर कार तक लाने की कोशिश कर रहे हैं.
पिक्चर में पिक्चर (पीआईपी) के लिए, सबसे सही तरीकों का पालन करें. इससे यह पता चलेगा कि यह सुविधा उपलब्ध है या नहीं. साथ ही, इस सुविधा के लिए सही तरीके से प्रतिक्रिया दी जा सकेगी.
ऑफ़लाइन स्थितियों को मैनेज करना
कारें अब ज़्यादा से ज़्यादा इंटरनेट से कनेक्ट हो रही हैं. हालांकि, ऐप्लिकेशन को इंटरनेट कनेक्शन के बिना भी काम करने की सुविधा देनी चाहिए. जैसे:
- उपयोगकर्ता, वाहन बनाने वाली कंपनी के सदस्यता पैकेज के हिस्से के तौर पर मिलने वाले मोबाइल डेटा से ऑप्ट आउट कर सकते हैं.
- कुछ इलाकों में मोबाइल डेटा का ऐक्सेस सीमित हो सकता है.
- वाई-फ़ाई रेडियो वाली कारें, वाई-फ़ाई रेंज से बाहर हो सकती हैं या कोई OEM शायद मोबाइल नेटवर्क के लिए वाई-फ़ाई बंद कर दें.
अपने ऐप्लिकेशन में इन स्थितियों को मैनेज करने के लिए तैयार रहें. इसके लिए, इंटरनेट ऐक्सेस पर निर्भर रहने वाली सुविधाओं को बेहतर तरीके से कम करें. जैसे, ऑफ़लाइन कॉन्टेंट उपलब्ध कराना. ज़्यादा जानकारी के लिए, विज्ञापन को ऑप्टिमाइज़ करने के सबसे सही तरीके देखें नेटवर्किंग.
वैकल्पिक संसाधनों का इस्तेमाल करें
अपने ऐप्लिकेशन को कारों के हिसाब से ऑप्टिमाइज़ करने के लिए, car
रिसॉर्स क्वालीफ़ायर का इस्तेमाल करके जानकारी दी जा सकती है
वैकल्पिक संसाधन
Android Automotive OS की गाड़ी में काम करते समय. उदाहरण के लिए, अगर आपको
स्टोर करने के लिए डाइमेंशन संसाधन
पैडिंग वैल्यू है, तो car
संसाधन सेट के लिए बड़ी वैल्यू का इस्तेमाल किया जा सकता है,
टच टारगेट को बड़ा कर सकता है.
अपना ऐप्लिकेशन वितरित करें
कार ऐप्लिकेशन की कैटगरी के लिए क्वालिटी के दिशा-निर्देशों के हिसाब से अपने ऐप्लिकेशन की जांच करने और अपनी कैटगरी के लिए ज़रूरी बदलावों के साथ, Android Automotive OS का बिल्ड बनाने के बाद, उसे Play Store पर Automotive OS फ़ॉर्म फ़ैक्टर ट्रैक पर पब्लिश किया जा सकता है. कार के लिए Android ऐप्लिकेशन वितरित करें देखें पर जाकर, पब्लिश करने की प्रोसेस के बारे में ज़्यादा जानें.
पार्क किए गए ऐप्लिकेशन के बारे में सुझाव, शिकायत या राय भेजना
अपनी कार को पार्क करते समय कोई समस्या आने पर या किसी सुविधा का अनुरोध करने पर ऐप्लिकेशन है, तो उसकी शिकायत करने के लिए इसका इस्तेमाल करें: Google समस्या को ट्रैक करने वाला टूल. समस्या वाले टेंप्लेट में मांगी गई पूरी जानकारी भरना न भूलें. इस तारीख से पहले कोई नई समस्या दर्ज करें, फिर देखें कि क्या यह पहले से ही समस्याओं की सूची में रिपोर्ट की गई है. ट्रैकर में किसी समस्या के लिए स्टार के निशान पर क्लिक करके, उस समस्या के लिए सदस्यता ली जा सकती है और उस पर वोट किया जा सकता है. ज़्यादा जानकारी के लिए, यह देखें किसी समस्या के लिए सदस्यता लेना.