टीवी ऐप्लिकेशन बनाना और चलाना

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

अहम जानकारी: ज़रूरी शर्तें पूरी करने के बाद ही, आपके ऐप्लिकेशन को कुछ ज़रूरी शर्तें पूरी करनी होंगी Google Play पर Android TV ऐप्लिकेशन के तौर पर उपलब्ध हो. ज़्यादा जानकारी के लिए, सूची में दी गई ज़रूरी शर्तें देखें टीवी ऐप्लिकेशन की क्वालिटी में.

इस गाइड में बताया गया है कि टीवी ऐप्लिकेशन बनाने के लिए, अपने डेवलपमेंट एनवायरमेंट को कैसे तैयार किया जाए और टीवी डिवाइस पर ऐप्लिकेशन चलाने के लिए ज़रूरी बदलाव.

टीवी के लिए ऐप्लिकेशन डिज़ाइन करने की जानकारी के लिए, इसके लिए डिज़ाइन करें टीवी. साथ ही, इसमें Android TV GitHub डेटा स्टोर करने की जगह.

तय करें कि यह मीडिया फ़ॉर्मैट काम करेगा या नहीं

कोडेक, प्रोटोकॉल, और फ़ॉर्मैट के बारे में जानकारी के लिए नीचे दिया गया दस्तावेज़ देखें Android TV पर काम करता है:

टीवी प्रोजेक्ट सेट अप करना

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

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

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

ज़रूरी शर्तें

टीवी के लिए ऐप्लिकेशन बनाना शुरू करने से पहले, आपको ये काम करने होंगे:

  • अपने SDK टूल के टूल को 24.0.0 या इसके बाद वाले वर्शन पर अपडेट करें.
    अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है SDK टूल के अपडेट किए गए टूल से, टीवी के लिए ऐप्लिकेशन बनाने और उन्हें टेस्ट करने में मदद मिलती है.
  • अपने SDK टूल को Android 5.0 (एपीआई 21) या इसके बाद के वर्शन पर अपडेट करें.
    अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है प्लैटफ़ॉर्म के अपडेट किए गए वर्शन में, टीवी ऐप्लिकेशन के लिए नए एपीआई उपलब्ध हैं.
  • अपना ऐप्लिकेशन प्रोजेक्ट बनाएं या उसे अपडेट करें.
    अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है TV डिवाइसों के लिए नए एपीआई ऐक्सेस करने के लिए, कोई प्रोजेक्ट बनाएं या किसी मौजूदा एपीआई में बदलाव करें प्रोजेक्ट जो 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 सुविधा.

अगर आपका ऐप्लिकेशन, मोबाइल और टीवी, दोनों पर चलता है, तो 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 में आपके ऐप्लिकेशन को टीवी ऐप्लिकेशन माना जाए ऐप्लिकेशन चलाएं. कोड के इस उदाहरण में, मेनिफ़ेस्ट के इस एलान को शामिल करने का तरीका बताया गया है:

<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 ऐप्लिकेशन की तरह ही, Android TV ऐप्लिकेशन के लिए भी, होम स्क्रीन का आइकॉन उपलब्ध कराना होगा. सबसे सही तरीकों के लिए, अपने ऐप्लिकेशन के लिए एक शानदार लॉन्च पॉइंट और ऐसेट की पूरी जानकारी पाने के लिए, Android TV ऐप्लिकेशन का आइकॉन और बैनर दिशा-निर्देशों के मुताबिक होना चाहिए.

android:banner का इस्तेमाल करें एट्रिब्यूट के साथ <application> को शामिल करें टैग का इस्तेमाल करके, सभी ऐप्लिकेशन गतिविधियों के लिए डिफ़ॉल्ट बैनर उपलब्ध रहेगा या <activity> टैग का इस्तेमाल करें.

बैनर के लिए, 320 x 180 px साइज़ वाले xhdpi संसाधन का इस्तेमाल करें. टेक्स्ट को इसमें शामिल होना चाहिए: इमेज. अगर आपका ऐप्लिकेशन एक से ज़्यादा भाषाओं में उपलब्ध है, तो आपको बैनर में हर भाषा के लिए टेक्स्ट होना चाहिए.

लॉन्चर का रंग बदलना

चेतावनी: Android 12 और उसके बाद वाले वर्शन में, SplashScreen प्लैटफ़ॉर्म एपीआई, Android TV ऐप्लिकेशन के साथ काम नहीं करता.

जब कोई टीवी ऐप्लिकेशन लॉन्च होता है, तो सिस्टम एक बड़ा ऐनिमेशन दिखाता है मंडली. इस ऐनिमेशन के रंग को पसंद के मुताबिक बनाने के लिए, android:colorPrimary पर सेट करें किसी खास रंग की गतिविधि या आपके टीवी ऐप्लिकेशन की विशेषता. साथ ही, दो true पर ट्रांज़िशन ओवरलैप एट्रिब्यूट, जैसा कि नीचे दिए गए स्निपेट में दिखाया गया है थीम पर आधारित संसाधन की एक्सएमएल फ़ाइल:

<resources>
    <style ... >
      <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 पैकेज लाइब्रेरी शामिल हैं.

टीवी के लिए लिखें

Android TV OS के लिए ऐप्लिकेशन बनाने के लिए, लिखने का सुझाव दिया जाता है. कंपोज़ की मुख्य सुविधा के साथ-साथ लाइब्रेरी के लिए, Compose for TV लाइब्रेरी बड़ी स्क्रीन:

Android TV पर Jetpack Compose का इस्तेमाल करें में जाकर, टीवी के लिए लिखने की सुविधा का इस्तेमाल करके टीवी ऐप्लिकेशन बनाने का तरीका जानें.

Leanback यूज़र इंटरफ़ेस (यूआई) टूलकिट

Leanback यूज़र इंटरफ़ेस (यूआई) टूलकिट, टीवी डिवाइस के लिए API और उपयोगकर्ता इंटरफ़ेस विजेट उपलब्ध कराता है:

जानें कि इसमें Leanback UI टूलकिट का उपयोग करके टीवी ऐप्लिकेशन कैसे बनाया जाए. टीवी प्लेबैक ऐप्लिकेशन बनाएं.

टीवी ऐप्लिकेशन चलाएं

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

किसी फ़िज़िकल डिवाइस पर चलाएं

अपने टीवी डिवाइस को इस तरह से सेट अप करें:

  1. अपने टीवी डिवाइस को डेवलपमेंट मशीन से कनेक्ट करने के लिए, यूएसबी केबल का इस्तेमाल करें. ज़रूरत पड़ने पर, डिवाइस बनाने वाली कंपनी के दस्तावेज़ देखें.
  2. अपने टीवी डिवाइस में, सेटिंग में जाएं.
  3. डिवाइस पंक्ति में, इसके बारे में जानकारी चुनें.
  4. स्क्रोल करके बिल्ड पर जाएं और बिल्ड को कई बार तब तक चुनें, जब तक आपको मैसेज नहीं मिल जाता "अब आप डेवलपर हैं!"
  5. सेटिंग पर वापस जाएं. प्राथमिकताएं पंक्ति में, डेवलपर के लिए सेटिंग और टूल चुनें.
  6. डीबगिंग > चुनें यूएसबी डीबग करना और चालू करें चुनें.
  7. टीवी की होम स्क्रीन पर वापस जाएं.

अपने टीवी डिवाइस पर अपने ऐप्लिकेशन की जांच करने के लिए:

  1. Android Studio में, अपना प्रोजेक्ट चुनें और क्लिक करें चलाएं से निकाल दिया गया है.
  2. डिप्लॉयमेंट टारगेट चुनें विंडो में, अपना टीवी डिवाइस चुनें और ठीक है पर क्लिक करें.

वर्चुअल डिवाइस पर चलाएं

Android में AVD मैनेजर SDK टूल, डिवाइस को इस्तेमाल करने के लिए तय की गई परिभाषाएं उपलब्ध कराता है. इनकी मदद से, ऐसे वर्चुअल टीवी डिवाइस बनाए जा सकते हैं जिन्हें इस्तेमाल किया जा सकता है और आपके ऐप्लिकेशन की जांच कर रहा है.

वर्चुअल टीवी डिवाइस बनाने के लिए:

  1. एवीडी मैनेजर शुरू करें. ज़्यादा जानकारी के लिए, यह देखें वर्चुअल डिवाइस बनाएं और उन्हें मैनेज करें.
  2. एवीडी मैनेजर के डायलॉग बॉक्स में, डिवाइस की परिभाषाएं टैब पर क्लिक करें.
  3. Android TV डिवाइस की परिभाषाओं में से कोई एक चुनें और एवीडी बनाएं पर क्लिक करें.
  4. एम्युलेटर विकल्प चुनें और एवीडी बनाने के लिए, ठीक है पर क्लिक करें.

    ध्यान दें: टीवी एम्युलेटर डिवाइस की सबसे अच्छी परफ़ॉर्मेंस के लिए, x86 एम्युलेटर का इस्तेमाल करें और होस्ट जीपीयू का इस्तेमाल करें विकल्प को चालू करें. वर्चुअल डिवाइस से तेज़ी लाने की सुविधा का इस्तेमाल तब करें, जब उपलब्ध हैं. एम्युलेटर की हार्डवेयर से तेज़ी लाने के बारे में ज़्यादा जानकारी के लिए, देखें यह कॉन्फ़िगरेशन, हार्डवेयर की मदद से तेज़ी से बढ़ाने के लिए किया जाता है Android एम्युलेटर.

वर्चुअल टीवी डिवाइस पर अपने ऐप्लिकेशन की जांच करने के लिए:

  1. Android Studio में, अपना प्रोजेक्ट चुनें और क्लिक करें चलाएं से निकाल दिया गया है.
  2. डिप्लॉयमेंट टारगेट चुनें विंडो में, अपना वर्चुअल टीवी डिवाइस चुनें और ठीक है पर क्लिक करें.

एम्युलेटर का इस्तेमाल करने के बारे में ज़्यादा जानकारी के लिए, देखें 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>

अब आपका टीवी ऐप्लिकेशन, झटपट इस्तेमाल की सुविधा देने वाले वर्शन के तौर पर चलने के लिए कॉन्फ़िगर हो गया है.

अपने टीवी ऐप्लिकेशन को पब्लिकेशन के लिए तैयार करना

अगले चरणों के लिए टीवी ऐप्लिकेशन की चेकलिस्ट देखें पब्लिकेशन और डिस्ट्रिब्यूशन के लिए, आपके टीवी ऐप्लिकेशन को तैयार करते हैं.