टीवी ऐप्लिकेशन का स्ट्रक्चर, फ़ोन और टैबलेट के ऐप्लिकेशन जैसा ही होता है. इस समानता का मतलब है कि टीवी डिवाइसों पर भी ऐप्लिकेशन चलाने के लिए, अपने मौजूदा ऐप्लिकेशन में बदलाव किया जा सकता है. इसके अलावा, Android के लिए ऐप्लिकेशन बनाने के बारे में आपको पहले से जो जानकारी है उसके आधार पर नए ऐप्लिकेशन बनाए जा सकते हैं.
अहम जानकारी: Google Play पर Android TV ऐप्लिकेशन के तौर पर मंज़ूरी पाने के लिए, आपके ऐप्लिकेशन को कुछ ज़रूरी शर्तें पूरी करनी होंगी. ज़्यादा जानकारी के लिए, टीवी ऐप्लिकेशन की क्वालिटी में दी गई ज़रूरी शर्तें देखें.
इस गाइड में, टीवी ऐप्लिकेशन बनाने के लिए डेवलपमेंट एनवायरमेंट तैयार करने का तरीका बताया गया है. साथ ही, इसमें यह भी बताया गया है कि टीवी डिवाइसों पर ऐप्लिकेशन चलाने के लिए, कम से कम कौनसे बदलाव करने ज़रूरी हैं.
टीवी के लिए ऐप्लिकेशन डिज़ाइन करने के बारे में जानकारी पाने के लिए, टीवी के लिए डिज़ाइन करना लेख पढ़ें. Android TV GitHub रिपॉज़िटरी में मौजूद सैंपल ऐप्लिकेशन भी देखें.
मीडिया फ़ॉर्मैट के साथ काम करने की सुविधा तय करना
Android TV पर काम करने वाले कोडेक, प्रोटोकॉल, और फ़ॉर्मैट के बारे में जानकारी पाने के लिए, यहां दिया गया दस्तावेज़ देखें:
टीवी प्रोजेक्ट सेट अप करना
इस सेक्शन में, टीवी प्रोजेक्ट सेट अप करने का तरीका बताया गया है. इसमें यह भी बताया गया है कि टीवी डिवाइसों पर चलाने के लिए, किसी मौजूदा Android ऐप्लिकेशन में बदलाव कैसे किया जा सकता है या नया टीवी ऐप्लिकेशन कैसे बनाया जा सकता है. अगर आपके पास कोई मौजूदा Android ऐप्लिकेशन है, तो Android TV की सुविधा जोड़ने से, आपको टीवी के लिए उपयोगकर्ता इंटरफ़ेस डिज़ाइन करने में मदद मिलती है. साथ ही, आपको अपने मौजूदा ऐप्लिकेशन आर्किटेक्चर का फिर से इस्तेमाल करने का विकल्प मिलता है.
टीवी डिवाइसों पर चलने वाला ऐप्लिकेशन बनाते समय, इन दो मुख्य कॉम्पोनेंट का इस्तेमाल किया जाता है:
- टीवी के लिए ऐक्टिविटी: अपने ऐप्लिकेशन मेनिफ़ेस्ट में, ऐसी ऐक्टिविटी का एलान करें जिसे टीवी डिवाइसों पर चलाया जाना है.
- टीवी लाइब्रेरी: टीवी डिवाइसों के लिए उपलब्ध androidx लाइब्रेरी में से एक या उससे ज़्यादा लाइब्रेरी शामिल करें. हालांकि, ऐसा करना ज़रूरी नहीं है. इस गाइड के दूसरे सेक्शन में, इन लाइब्रेरी की सूची दी गई है. ये लाइब्रेरी, यूज़र इंटरफ़ेस बनाने के लिए विजेट उपलब्ध कराती हैं.
ज़रूरी शर्तें
टीवी के लिए ऐप्लिकेशन बनाना शुरू करने से पहले, आपको ये चरण पूरे करने होंगे:
-
अपने एसडीके टूल को 24.0.0 या इसके बाद के वर्शन पर अपडेट करें.
अपडेट किए गए एसडीके टूल की मदद से, टीवी के लिए ऐप्लिकेशन बनाए और टेस्ट किए जा सकते हैं. - अपने एसडीके को Android 5.0 (एपीआई 21) या उसके बाद के वर्शन पर अपडेट करें.
अपडेट किए गए प्लैटफ़ॉर्म वर्शन में, टीवी ऐप्लिकेशन के लिए नए एपीआई उपलब्ध हैं. -
ऐप्लिकेशन प्रोजेक्ट बनाएं या उसे अपडेट करें.
टीवी डिवाइसों के लिए नए एपीआई ऐक्सेस करने के लिए, एक प्रोजेक्ट बनाएं या किसी मौजूदा प्रोजेक्ट में बदलाव करें. यह प्रोजेक्ट, Android 5.0 (एपीआई लेवल 21) या इसके बाद के वर्शन को टारगेट करता हो.
टीवी ऐक्टिविटी का एलान करें
टीवी डिवाइसों पर चलने वाले ऐप्लिकेशन को अपने मेनिफ़ेस्ट में, टीवी के लिए लॉन्चर ऐक्टिविटी का एलान करना होगा. इसके लिए, यह CATEGORY_LEANBACK_LAUNCHER इंटेंट फ़िल्टर का इस्तेमाल करता है. इस फ़िल्टर से, आपके ऐप्लिकेशन को टीवी के लिए उपलब्ध ऐप्लिकेशन के तौर पर पहचाना जाता है. साथ ही, Google Play इसे टीवी ऐप्लिकेशन के तौर पर पहचानता है. जब कोई उपयोगकर्ता अपने टीवी की होम स्क्रीन पर आपका ऐप्लिकेशन चुनता है, तो इस इंटेंट से यह पता चलता है कि कौनसी गतिविधि लॉन्च करनी है.
यहां दिए गए कोड स्निपेट में, इस इंटेंट फ़िल्टर को मेनिफ़ेस्ट में शामिल करने का तरीका बताया गया है:
<application android:banner="@drawable/banner" > ... <activity android:name="com.example.android.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="com.example.android.TvActivity" android:label="@string/app_name" android:theme="@style/Theme.Leanback"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LEANBACK_LAUNCHER" /> </intent-filter> </activity> </application>
इस उदाहरण में, दूसरी गतिविधि के मेनिफ़ेस्ट की एंट्री से पता चलता है कि यह गतिविधि, टीवी डिवाइस पर लॉन्च की जाएगी.
चेतावनी: अगर आपने अपने ऐप्लिकेशन में CATEGORY_LEANBACK_LAUNCHER इंटेंट फ़िल्टर शामिल नहीं किया है, तो यह टीवी डिवाइसों पर Google Play इस्तेमाल करने वाले लोगों को नहीं दिखेगा. इसके अलावा, अगर डेवलपर टूल का इस्तेमाल करके, ऐप्लिकेशन को टीवी डिवाइस पर लोड करते समय, आपके ऐप्लिकेशन में यह फ़िल्टर नहीं है, तो ऐप्लिकेशन, टीवी के यूज़र इंटरफ़ेस में नहीं दिखेगा.
आपके टीवी ऐप्लिकेशन के यूज़र इंटरफ़ेस या आपके मौजूदा ऐप्लिकेशन के टीवी वर्शन में, रिमोट कंट्रोल का इस्तेमाल करके 10 फ़ीट की दूरी से आसानी से नेविगेट करने की सुविधा होनी चाहिए. अगर आपको टीवी पर इस्तेमाल करने के लिए किसी मौजूदा ऐप्लिकेशन में बदलाव करना है, तो टीवी के लिए उसी ऐक्टिविटी लेआउट का इस्तेमाल न करें जिसका इस्तेमाल फ़ोन और टैबलेट के लिए किया जाता है. टीवी के लिए ऐप्लिकेशन डिज़ाइन करने से जुड़े दिशा-निर्देशों के लिए, टीवी के लिए डिज़ाइन करना लेख पढ़ें.
टीवी डिवाइस पर ऐप्लिकेशन के काम करने की जानकारी देना
यह एलान करें कि आपका ऐप्लिकेशन Android TV के लिए बनाया गया है. इसके लिए, android.software.leanback सुविधा का एलान करें.
अगर आपका ऐप्लिकेशन, फ़ोन और टीवी, दोनों पर चलता है, तो required एट्रिब्यूट की वैल्यू को false पर सेट करें. required एट्रिब्यूट की वैल्यू को true पर सेट करने पर, Google Play सिर्फ़ Android TV OS पर आपका ऐप्लिकेशन उपलब्ध कराएगा.
<manifest> <uses-feature android:name="android.software.leanback" android:required="false" /> ... </manifest>
टचस्क्रीन की ज़रूरत नहीं है
टीवी डिवाइसों पर चलने वाले ऐप्लिकेशन, इनपुट के लिए टचस्क्रीन पर निर्भर नहीं होते.
इस बारे में साफ़ तौर पर बताने के लिए, आपके टीवी ऐप्लिकेशन के मेनिफ़ेस्ट में यह एलान किया जाना चाहिए कि android.hardware.touchscreen सुविधा की ज़रूरत नहीं है. इस सेटिंग से, आपके ऐप्लिकेशन की पहचान टीवी डिवाइस पर काम करने वाले ऐप्लिकेशन के तौर पर होती है. साथ ही, Google Play पर आपके ऐप्लिकेशन को टीवी ऐप्लिकेशन के तौर पर शामिल करने के लिए, यह सेटिंग ज़रूरी है. यहां दिए गए कोड के उदाहरण में, मेनिफ़ेस्ट फ़ाइल में इस जानकारी को शामिल करने का तरीका बताया गया है:
<manifest> <uses-feature android:name="android.hardware.touchscreen" android:required="false" /> ... </manifest>
चेतावनी: आपको अपने ऐप्लिकेशन मेनिफ़ेस्ट में यह एलान करना होगा कि टचस्क्रीन की ज़रूरत नहीं है. जैसा कि इस उदाहरण कोड में दिखाया गया है. ऐसा न करने पर, आपका ऐप्लिकेशन टीवी डिवाइसों पर Google Play में नहीं दिखेगा.
होम स्क्रीन का आइकॉन और बैनर उपलब्ध कराएं
Android TV ऐप्लिकेशन को हर स्थानीय भाषा के लिए, होम स्क्रीन आइकॉन और बैनर इमेज, दोनों उपलब्ध करानी होंगी. Android TV डिवाइस के हिसाब से, ऐप्लिकेशन लॉन्च करने के लिए आइकॉन या बैनर का इस्तेमाल किया जाता है. यह आइकॉन या बैनर, होम स्क्रीन पर ऐप्लिकेशन और गेम की लाइनों में दिखता है.
इन्हें अपने ऐप्लिकेशन में जोड़ने के लिए, मेनिफ़ेस्ट में आइकॉन और बैनर के बारे में इस तरह बताएं:
<application ... android:icon="@mipmap/ic_launcher" android:banner="@drawable/banner" > ... </application>
होम स्क्रीन का आइकॉन
Android TV के ऐप्लिकेशन को, Android के सभी ऐप्लिकेशन की तरह ही होम स्क्रीन पर दिखने वाला आइकॉन देना होगा. अपने ऐप्लिकेशन के लिए बेहतरीन लॉन्च पॉइंट डिज़ाइन करने के सबसे सही तरीके और ऐसेट से जुड़ी ज़रूरी शर्तों के बारे में जानने के लिए, Android TV ऐप्लिकेशन के आइकॉन और बैनर के दिशा-निर्देश देखें.
होम स्क्रीन पर दिखने वाला बैनर
android:banner एट्रिब्यूट का इस्तेमाल, <application> टैग के साथ करें. इससे ऐप्लिकेशन से जुड़ी सभी गतिविधियों के लिए डिफ़ॉल्ट बैनर उपलब्ध कराया जा सकता है. इसके अलावा, इसका इस्तेमाल <activity> टैग के साथ करके, किसी खास गतिविधि के लिए बैनर उपलब्ध कराया जा सकता है.
बैनर के लिए, 320 x 180 पिक्सल साइज़ वाले xhdpi रिसॉर्स का इस्तेमाल करें. टेक्स्ट को इमेज में शामिल करना ज़रूरी है. अगर आपका ऐप्लिकेशन एक से ज़्यादा भाषाओं में उपलब्ध है, तो आपको हर भाषा के लिए, टेक्स्ट वाला बैनर अलग-अलग वर्शन में उपलब्ध कराना होगा.
लॉन्चर का रंग बदलना
चेतावनी: Android 12 और इसके बाद के वर्शन में, Android TV ऐप्लिकेशन के लिए SplashScreen प्लैटफ़ॉर्म एपीआई का इस्तेमाल करके बनाए गए कस्टम स्प्लैश स्क्रीन ऐनिमेशन काम नहीं करते.
जब कोई टीवी ऐप्लिकेशन लॉन्च होता है, तो सिस्टम एक ऐनिमेशन दिखाता है. यह ऐनिमेशन, बढ़ते हुए और भरे हुए सर्कल जैसा दिखता है. इस ऐनिमेशन के रंग को पसंद के मुताबिक बनाने के लिए, अपने टीवी ऐप्लिकेशन या गतिविधि के android:colorPrimary एट्रिब्यूट को किसी खास रंग पर सेट करें. इसके अलावा, दो ट्रांज़िशन ओवरलैप एट्रिब्यूट को true पर सेट करें. जैसा कि थीम रिसॉर्स की एक्सएमएल फ़ाइल के इस स्निपेट में दिखाया गया है:
<resources> <style name="MyTheme"> <item name="android:colorPrimary">@color/primary</item> <item name="android:windowAllowReturnTransitionOverlap">true</item> <item name="android:windowAllowEnterTransitionOverlap">true</item> </style> </resources>
थीम और स्टाइल के साथ काम करने के बारे में ज़्यादा जानने के लिए, स्टाइल और थीम देखें.
Android TV OS के लिए ऐप्लिकेशन बनाना
Jetpack में, टीवी ऐप्लिकेशन के साथ इस्तेमाल करने के लिए androidx पैकेज लाइब्रेरी शामिल हैं.
Compose for TV
Android TV OS के लिए ऐप्लिकेशन बनाने के लिए, Compose का इस्तेमाल करने का सुझाव दिया जाता है. Compose की मुख्य लाइब्रेरी के साथ-साथ, Compose for TV की लाइब्रेरी में खास कॉम्पोनेंट उपलब्ध होते हैं. इन्हें खास तौर पर बड़ी स्क्रीन के लिए डिज़ाइन किया गया है:
Android TV पर Jetpack Compose का इस्तेमाल करना लेख में, Compose for TV का इस्तेमाल करके टीवी ऐप्लिकेशन बनाने का तरीका जानें.
Leanback यूज़र इंटरफ़ेस (यूआई) टूलकिट
Leanback UI टूलकिट, टीवी डिवाइसों के लिए एपीआई और यूज़र इंटरफ़ेस (यूआई) विजेट उपलब्ध कराती है:
androidx.leanback.appandroidx.leanback.databaseandroidx.leanback.graphicsandroidx.leanback.mediaandroidx.leanback.preferenceandroidx.leanback.systemandroidx.leanback.widgetandroidx.leanback.widget.picker
टीवी पर वीडियो चलाने वाले ऐप्लिकेशन बनाना में जाकर, Leanback UI टूलकिट का इस्तेमाल करके टीवी ऐप्लिकेशन बनाने का तरीका जानें.
टीवी ऐप्लिकेशन चलाना
ऐप्लिकेशन को चलाना, डेवलपमेंट प्रोसेस का एक अहम हिस्सा है. अपने ऐप्लिकेशन को उन टीवी डिवाइसों पर चलाया जा सकता है जिन्हें यूएसबी डीबगिंग की सुविधा के साथ कॉन्फ़िगर किया गया है. इसके अलावा, वर्चुअल टीवी डिवाइसों का इस्तेमाल भी किया जा सकता है.
किसी फ़िज़िकल डिवाइस पर चलाना
अपने टीवी डिवाइस को इस तरह सेट अप करें:
- यूएसबी केबल का इस्तेमाल करके, अपने टीवी डिवाइस को डेवलपमेंट मशीन से कनेक्ट करें. अगर ज़रूरी हो, तो डिवाइस बनाने वाली कंपनी का उपलब्ध कराया गया दस्तावेज़ देखें.
- अपने टीवी डिवाइस पर, सेटिंग पर जाएं.
- डिवाइस लाइन में जाकर, इसके बारे में जानकारी को चुनें.
- नीचे की ओर स्क्रोल करके बिल्ड पर जाएं. इसके बाद, बिल्ड को कई बार तब तक चुनें, जब तक आपको यह मैसेज न मिले: "अब आप डेवलपर हैं!"
- सेटिंग पर वापस जाएं. प्राथमिकताएं लाइन में जाकर, डेवलपर के लिए सेटिंग और टूल को चुनें.
- डीबग करना > यूएसबी डीबग करना को चुनें. इसके बाद, चालू करें को चुनें.
- टीवी की होम स्क्रीन पर वापस जाएं.
अपने टीवी डिवाइस पर ऐप्लिकेशन को टेस्ट करने के लिए:
- Android Studio में, अपना प्रोजेक्ट चुनें और टूलबार में मौजूद, चलाएं
पर क्लिक करें. - डिप्लॉयमेंट का टारगेट चुनें विंडो में जाकर, अपना टीवी डिवाइस चुनें और ठीक है पर क्लिक करें.
वर्चुअल डिवाइस पर चलाना
Android SDK में मौजूद AVD Manager, डिवाइस की परिभाषाएं उपलब्ध कराता है. इनकी मदद से, वर्चुअल टीवी डिवाइस बनाए जा सकते हैं. इन डिवाइसों पर, अपने ऐप्लिकेशन चलाए और उनकी जांच की जा सकती है.
वर्चुअल टीवी डिवाइस बनाने के लिए:
- AVD Manager शुरू करें. ज़्यादा जानकारी के लिए, वर्चुअल डिवाइस बनाना और उन्हें मैनेज करना लेख पढ़ें.
- AVD Manager डायलॉग में, Device Definitions टैब पर क्लिक करें.
- Android TV डिवाइस की कोई परिभाषा चुनें और AVD बनाएं पर क्लिक करें.
- इम्यूलेटर के विकल्प चुनें और एवीडी बनाने के लिए, OK पर क्लिक करें.
ध्यान दें: टीवी इम्यूलेटर डिवाइस की सबसे अच्छी परफ़ॉर्मेंस के लिए, x86 इम्यूलेटर का इस्तेमाल करें. साथ ही, होस्ट जीपीयू का इस्तेमाल करें विकल्प चालू करें. उपलब्ध होने पर, वर्चुअल डिवाइस ऐक्सेलरेशन का भी इस्तेमाल करें. एम्युलेटर के हार्डवेयर ऐक्सेलरेटर के बारे में ज़्यादा जानने के लिए, Android Emulator के लिए हार्डवेयर ऐक्सेलरेटर कॉन्फ़िगर करना लेख पढ़ें.
वर्चुअल टीवी डिवाइस पर अपने ऐप्लिकेशन को टेस्ट करने के लिए:
- Android Studio में, अपना प्रोजेक्ट चुनें और टूलबार में मौजूद, चलाएं
पर क्लिक करें. - Select Deployment Target विंडो में जाकर, अपना वर्चुअल टीवी डिवाइस चुनें और OK पर क्लिक करें.
एम्युलेटर इस्तेमाल करने के बारे में ज़्यादा जानने के लिए, Android Emulator पर ऐप्लिकेशन चलाना लेख पढ़ें. Android Studio से वर्चुअल डिवाइसों पर ऐप्लिकेशन डिप्लॉय करने के बारे में ज़्यादा जानने के लिए, अपने ऐप्लिकेशन को डीबग करना लेख पढ़ें.
टीवी ऐप्लिकेशन को झटपट इस्तेमाल की सुविधा देने वाले ऐप्लिकेशन के तौर पर चलाने की सुविधा चालू करना
झटपट इस्तेमाल की सुविधा की मदद से, लोग आपके टीवी ऐप्लिकेशन को इंस्टॉल किए बिना आज़मा सकते हैं. इससे ऐप्लिकेशन को अपनाने वाले लोगों की संख्या बढ़ सकती है.
Android TV डिवाइस या एम्युलेटर पर, टीवी ऐप्लिकेशन को इंस्टैंट ऐप्लिकेशन के तौर पर चलाने के लिए सेट अप करने के लिए, सबसे पहले झटपट खुलने वाला ऐप्लिकेशन बंडल बनाएं. इसके लिए, यहां दिए गए निर्देशों का पालन करें.
इसके बाद, अपने टीवी ऐप्लिकेशन के intent-filter में MainActivity के लिए, पक्का करें कि AndroidManifest.xml में LAUNCHER और LEANBACK_LAUNCHER, दोनों के बारे में बताया गया हो:
<activity android:name="com.example.android.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> <category android:name="android.intent.category.LEANBACK_LAUNCHER" /> </intent-filter> </activity>
अब आपका टीवी ऐप्लिकेशन, झटपट इस्तेमाल की सुविधा देने वाले ऐप्लिकेशन के तौर पर काम करने के लिए कॉन्फ़िगर हो गया है.
पब्लिश करने के लिए, अपना टीवी ऐप्लिकेशन तैयार करना
पब्लिश करने और डिस्ट्रिब्यूट करने के लिए, अपने टीवी ऐप्लिकेशन को तैयार करने के लिए, टीवी ऐप्लिकेशन की चेकलिस्ट देखें.