टीवी के ऐप्लिकेशन, फ़ोन और टैबलेट के ऐप्लिकेशन के जैसे ही स्ट्रक्चर का इस्तेमाल करते हैं. इस समानता का मतलब है कि अपने मौजूदा ऐप्लिकेशन में बदलाव करके, उन्हें टीवी डिवाइसों पर भी चलाया जा सकता है. इसके अलावा, Android के लिए ऐप्लिकेशन बनाने के बारे में अपनी मौजूदा जानकारी के आधार पर, नए ऐप्लिकेशन भी बनाए जा सकते हैं.
अहम जानकारी: Google Play पर, आपके ऐप्लिकेशन को Android TV का ऐप्लिकेशन के तौर पर दिखाने के लिए, ज़रूरी शर्तें पूरी करनी होंगी. ज़्यादा जानकारी के लिए, टीवी ऐप्लिकेशन की क्वालिटी से जुड़ी ज़रूरी शर्तें देखें.
इस गाइड में, टीवी के ऐप्लिकेशन बनाने के लिए, डेवलपमेंट एनवायरमेंट तैयार करने का तरीका बताया गया है. साथ ही, इसमें उन ज़रूरी बदलावों के बारे में भी बताया गया है जिनकी मदद से, किसी ऐप्लिकेशन को टीवी डिवाइसों पर चलाया जा सकता है.
टीवी के लिए ऐप्लिकेशन डिज़ाइन करने के बारे में जानकारी पाने के लिए, टीवी के लिए डिज़ाइन करना लेख पढ़ें. इसके अलावा, Android TV के GitHub डेटाबेस में मौजूद सैंपल ऐप्लिकेशन देखें.
मीडिया फ़ॉर्मैट के साथ काम करने की सुविधा की जानकारी पाना
Android TV के साथ काम करने वाले कोडेक, प्रोटोकॉल, और फ़ॉर्मैट के बारे में जानकारी पाने के लिए, यह दस्तावेज़ देखें:
टीवी के लिए प्रोजेक्ट सेट अप करना
इस सेक्शन में, टीवी के लिए प्रोजेक्ट सेट अप करने का तरीका बताया गया है. इसमें यह भी बताया गया है कि अगर आपको किसी मौजूदा Android ऐप्लिकेशन में बदलाव करके, उसे टीवी डिवाइसों पर चलाना है, तब भी यह तरीका काम आएगा. इसके अलावा, इसमें नया टीवी ऐप्लिकेशन बनाने का तरीका भी बताया गया है. अगर आपके पास कोई मौजूदा Android ऐप्लिकेशन है, तो उसमें Android TV के लिए सहायता जोड़ने से, आपको टीवी के लिए यूज़र इंटरफ़ेस डिज़ाइन करने में मदद मिलती है. साथ ही, आपको अपने मौजूदा ऐप्लिकेशन के आर्किटेक्चर का फिर से इस्तेमाल करने की सुविधा भी मिलती है.
टीवी डिवाइसों पर चलने वाला ऐप्लिकेशन बनाते समय, इन दो मुख्य कॉम्पोनेंट का इस्तेमाल किया जाता है:
- टीवी के लिए ऐक्टिविटी: अपने ऐप्लिकेशन के मेनिफ़ेस्ट में, ऐसी ऐक्टिविटी के बारे में बताएं जिसे टीवी डिवाइसों पर चलाया जाना है.
- टीवी के लिए लाइब्रेरी: चाहें, तो टीवी डिवाइसों के लिए उपलब्ध androidx लाइब्रेरी में से एक या उससे ज़्यादा लाइब्रेरी शामिल करें. इस गाइड के किसी दूसरे सेक्शन में, इन लाइब्रेरी की सूची दी गई है. इन लाइब्रेरी में, यूज़र इंटरफ़ेस बनाने के लिए विजेट उपलब्ध होते हैं.
ज़रूरी शर्तें
टीवी के लिए ऐप्लिकेशन बनाने से पहले, आपको ये काम करने होंगे:
-
अपने SDK टूल को वर्शन 24.0.0 या इसके बाद वाले वर्शन पर अपडेट करें.
अपडेट किए गए SDK टूल की मदद से, टीवी के लिए ऐप्लिकेशन बनाए और टेस्ट किए जा सकते हैं. - अपने SDK को 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.software.leanback सुविधा के बारे में बताकर, यह एलान करें कि आपका ऐप्लिकेशन, Android TV के लिए बनाया गया है.
अगर आपका ऐप्लिकेशन, मोबाइल और टीवी, दोनों पर चलता है, तो 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 ऐप्लिकेशन के आइकॉन और बैनर के लिए दिशा-निर्देश लेख पढ़ें.
होम स्क्रीन बैनर
सभी ऐप्लिकेशन ऐक्टिविटी के लिए डिफ़ॉल्ट बैनर उपलब्ध कराने के लिए, <application>
टैग के साथ android:banner
एट्रिब्यूट का इस्तेमाल करें. वहीं, किसी खास ऐक्टिविटी के लिए बैनर उपलब्ध कराने के लिए, <activity>
टैग के साथ इस एट्रिब्यूट का इस्तेमाल करें.
बैनर के लिए, xhdpi रिसॉर्स का इस्तेमाल करें. इसका साइज़ 320 x 180 पिक्सल होना चाहिए. इमेज में टेक्स्ट शामिल होना चाहिए. अगर आपका ऐप्लिकेशन एक से ज़्यादा भाषाओं में उपलब्ध है, तो आपको हर भाषा के लिए, टेक्स्ट के साथ बैनर के अलग-अलग वर्शन उपलब्ध कराने होंगे.
लॉन्चर का रंग बदलना
चेतावनी: Android 12 और इसके बाद के वर्शन में,
SplashScreen प्लैटफ़ॉर्म एपीआई का इस्तेमाल करके बनाए गए, पसंद के मुताबिक स्प्लैश स्क्रीन ऐनिमेशन, Android TV ऐप्लिकेशन के लिए काम नहीं करते.
जब कोई टीवी ऐप्लिकेशन लॉन्च होता है, तो सिस्टम एक ऐनिमेशन दिखाता है. यह ऐनिमेशन, फैलते हुए और भरे हुए
सर्कल जैसा दिखता है. इस ऐनिमेशन के रंग को पसंद के मुताबिक बनाने के लिए, अपने टीवी ऐप्लिकेशन या ऐक्टिविटी के 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 for TV लाइब्रेरी में, मुख्य Compose लाइब्रेरी के साथ-साथ, खास कॉम्पोनेंट उपलब्ध होते हैं. इन्हें खास तौर पर बड़ी स्क्रीन के लिए डिज़ाइन किया गया है:
Android TV पर Jetpack Compose का इस्तेमाल करके, टीवी ऐप्लिकेशन बनाने का तरीका जानने के लिए, Android TV पर Jetpack Compose का इस्तेमाल करना लेख पढ़ें.
Leanback यूज़र इंटरफ़ेस (यूआई) टूलकिट
Leanback यूज़र इंटरफ़ेस (यूआई) टूलकिट में, टीवी डिवाइसों के लिए एपीआई और यूज़र इंटरफ़ेस विजेट उपलब्ध होते हैं:
androidx.leanback.appandroidx.leanback.databaseandroidx.leanback.graphicsandroidx.leanback.mediaandroidx.leanback.preferenceandroidx.leanback.systemandroidx.leanback.widgetandroidx.leanback.widget.picker
Leanback यूज़र इंटरफ़ेस (यूआई) टूलकिट का इस्तेमाल करके, टीवी ऐप्लिकेशन बनाने का तरीका जानने के लिए, टीवी पर वीडियो चलाने वाले ऐप्लिकेशन बनाना लेख पढ़ें.
टीवी ऐप्लिकेशन चलाना
अपने ऐप्लिकेशन को चलाना, डेवलपमेंट प्रोसेस का एक अहम हिस्सा है. अपने ऐप्लिकेशन को, यूएसबी डीबग करने की सुविधा के लिए कॉन्फ़िगर किए गए टीवी डिवाइसों पर चलाया जा सकता है. इसके अलावा, वर्चुअल टीवी डिवाइसों का इस्तेमाल भी किया जा सकता है.
फ़िज़िकल डिवाइस पर चलाना
अपने टीवी डिवाइस को इस तरह सेट अप करें:
- अपने टीवी डिवाइस को डेवलपमेंट मशीन से कनेक्ट करने के लिए, यूएसबी केबल का इस्तेमाल करें. अगर ज़रूरत हो, तो डिवाइस बनाने वाली कंपनी के दस्तावेज़ देखें.
- अपने टीवी डिवाइस पर, सेटिंग पर जाएं.
- डिवाइस लाइन में, जानकारी को चुनें.
- बिल्ड पर स्क्रोल करें और बिल्ड को कई बार चुनें. ऐसा तब तक करें, जब तक आपको "अब आप डेवलपर हैं!" मैसेज न मिल जाए.
- सेटिंग पर वापस जाएं. वरीयताएं लाइन में, डेवलपर के लिए विकल्प को चुनें.
- डीबग करना > यूएसबी डीबग करना को चुनें. इसके बाद, चालू करें को चुनें.
- टीवी की होम स्क्रीन पर वापस जाएं.
अपने टीवी डिवाइस पर, अपने ऐप्लिकेशन को टेस्ट करने के लिए:
- Android Studio में, अपना प्रोजेक्ट चुनें और टूलबार से
चलाएं
पर क्लिक करें. - डिप्लॉयमेंट टारगेट चुनें विंडो में, अपना टीवी डिवाइस चुनें और ठीक है पर क्लिक करें.
वर्चुअल डिवाइस पर चलाना
Android SDK में मौजूद AVD मैनेजर में, डिवाइस की परिभाषाएं उपलब्ध होती हैं. इनकी मदद से, अपने ऐप्लिकेशन को चलाने और टेस्ट करने के लिए, वर्चुअल टीवी डिवाइस बनाए जा सकते हैं.
वर्चुअल टीवी डिवाइस बनाने के लिए:
- AVD मैनेजर शुरू करें. ज़्यादा जानकारी के लिए, वर्चुअल डिवाइस बनाना और मैनेज करना लेख पढ़ें.
- AVD मैनेजर डायलॉग में, डिवाइस की परिभाषाएं टैब पर क्लिक करें.
- Android TV डिवाइस की कोई परिभाषा चुनें और AVD बनाएं पर क्लिक करें.
- एम्युलेटर के विकल्प चुनें और AVD बनाने के लिए, ठीक है पर क्लिक करें.
ध्यान दें: टीवी एम्युलेटर डिवाइस की परफ़ॉर्मेंस को बेहतर बनाने के लिए, x86 एम्युलेटर का इस्तेमाल करें और होस्ट जीपीयू का इस्तेमाल करें विकल्प को चालू करें. इसके अलावा, वर्चुअल डिवाइस की सुविधा उपलब्ध होने पर, उसका इस्तेमाल करें. एम्युलेटर के हार्डवेयर से तेज़ी लाने की सुविधा के बारे में ज़्यादा जानकारी के लिए, Android Emulator के लिए हार्डवेयर से तेज़ी लाने की सुविधा कॉन्फ़िगर करना लेख पढ़ें.
वर्चुअल टीवी डिवाइस पर, अपने ऐप्लिकेशन को टेस्ट करने के लिए:
- Android Studio में, अपना प्रोजेक्ट चुनें और टूलबार से
चलाएं
पर क्लिक करें. - डिप्लॉयमेंट टारगेट चुनें विंडो में, अपना वर्चुअल टीवी डिवाइस चुनें और ठीक है पर क्लिक करें.
एम्युलेटर इस्तेमाल करने के बारे में ज़्यादा जानकारी के लिए, Android Emulator पर ऐप्लिकेशन चलाना लेख पढ़ें. Android Studio से वर्चुअल डिवाइसों पर ऐप्लिकेशन डिप्लॉय करने के बारे में ज़्यादा जानकारी के लिए, अपने ऐप्लिकेशन को डीबग करना लेख पढ़ें.
अपने टीवी ऐप्लिकेशन को झटपट इस्तेमाल की सुविधा देने वाले ऐप्लिकेशन के तौर पर चलाने की अनुमति देना
तुरंत अनुभव लेने की सुविधा की मदद से, उपयोगकर्ता आपके टीवी ऐप्लिकेशन को इंस्टॉल किए बिना आज़मा सकते हैं. इससे, ऐप्लिकेशन को ज़्यादा लोग डाउनलोड कर सकते हैं.
अपने टीवी ऐप्लिकेशन को Android TV डिवाइस या एम्युलेटर पर, इंस्टेंट ऐप्लिकेशन के तौर पर चलाने के लिए, सबसे पहले झटपट खुलने वाला ऐप्लिकेशन बंडल बनाने के निर्देश देखें.
इसके बाद, अपने टीवी ऐप्लिकेशन के intent-filter के लिए,
MainActivity में यह पक्का करें कि LAUNCHER और
LEANBACK_LAUNCHER, दोनों के बारे में AndroidManifest.xml में बताया गया हो:
<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>
अब आपका टीवी ऐप्लिकेशन, झटपट इस्तेमाल की सुविधा देने वाले ऐप्लिकेशन के तौर पर चलाने के लिए कॉन्फ़िगर हो गया है.
अपने टीवी ऐप्लिकेशन को पब्लिश करने के लिए तैयार करना
अपने टीवी ऐप्लिकेशन को पब्लिश करने और लोगों को उपलब्ध कराने के लिए, अगले चरण जानने के लिए, टीवी ऐप्लिकेशन की चेकलिस्ट देखें.