টিভি অ্যাপ্লিকেশানগুলি ফোন এবং ট্যাবলেটগুলির জন্য অ্যাপ্লিকেশনগুলির মতো একই কাঠামো ব্যবহার করে৷ এই মিলটির অর্থ হল আপনি আপনার বিদ্যমান অ্যাপগুলিকে টিভি ডিভাইসে চালানোর জন্য সংশোধন করতে পারেন বা Android এর জন্য অ্যাপ তৈরি করার বিষয়ে আপনি ইতিমধ্যে যা জানেন তার উপর ভিত্তি করে নতুন অ্যাপ তৈরি করতে পারেন।
গুরুত্বপূর্ণ: Google Play-তে Android TV অ্যাপ হিসেবে যোগ্যতা অর্জন করতে আপনার অ্যাপটিকে অবশ্যই নির্দিষ্ট প্রয়োজনীয়তা পূরণ করতে হবে। আরও তথ্যের জন্য, টিভি অ্যাপের গুণমানের তালিকাভুক্ত প্রয়োজনীয়তাগুলি দেখুন।
এই নির্দেশিকাটি বর্ণনা করে যে কীভাবে টিভি অ্যাপ তৈরির জন্য আপনার ডেভেলপমেন্ট এনভায়রনমেন্ট প্রস্তুত করবেন এবং টিভি ডিভাইসে চালানোর জন্য একটি অ্যাপকে সক্ষম করার জন্য ন্যূনতম প্রয়োজনীয় পরিবর্তনগুলি।
টিভির জন্য অ্যাপ ডিজাইন করার বিষয়ে তথ্যের জন্য, টিভির জন্য ডিজাইন দেখুন। এছাড়াও Android TV GitHub সংগ্রহস্থলে নমুনা অ্যাপগুলি দেখুন।
মিডিয়া ফর্ম্যাট সমর্থন নির্ধারণ করুন
Android TV দ্বারা সমর্থিত কোডেক, প্রোটোকল এবং বিন্যাস সম্পর্কে তথ্যের জন্য নিম্নলিখিত ডকুমেন্টেশন দেখুন:
একটি টিভি প্রকল্প সেট আপ করুন
এই বিভাগে আলোচনা করা হয়েছে কিভাবে একটি টিভি প্রোজেক্ট সেট আপ করতে হয়, আপনি টিভি ডিভাইসে চালানোর জন্য একটি বিদ্যমান অ্যান্ড্রয়েড অ্যাপ পরিবর্তন করছেন নাকি একটি নতুন টিভি অ্যাপ তৈরি করছেন। আপনার যদি একটি বিদ্যমান অ্যান্ড্রয়েড অ্যাপ থাকে, তাহলে Android TV সমর্থন যোগ করলে আপনি আপনার বিদ্যমান অ্যাপ আর্কিটেকচার পুনরায় ব্যবহার করার সময় টিভির জন্য একটি ইউজার ইন্টারফেস ডিজাইন করতে পারবেন।
টিভি ডিভাইসে চলে এমন একটি অ্যাপ তৈরি করার সময় আপনি দুটি প্রধান উপাদান ব্যবহার করেন:
- টিভির জন্য ক্রিয়াকলাপ: আপনার অ্যাপ্লিকেশন ম্যানিফেস্টে, টিভি ডিভাইসে চালানোর উদ্দেশ্যে এমন একটি কার্যকলাপ ঘোষণা করুন৷
- টিভি লাইব্রেরি: ঐচ্ছিকভাবে, টিভি ডিভাইসের জন্য উপলব্ধ এক বা একাধিক androidx লাইব্রেরি অন্তর্ভুক্ত করুন, যা এই গাইডের অন্য বিভাগে তালিকাভুক্ত করা হয়েছে। এই লাইব্রেরি ইউজার ইন্টারফেস তৈরির জন্য উইজেট প্রদান করে।
পূর্বশর্ত
আপনি টিভির জন্য একটি অ্যাপ তৈরি করা শুরু করার আগে, আপনাকে অবশ্যই নিম্নলিখিত পদক্ষেপগুলি নিতে হবে:
- আপনার SDK টুলগুলি 24.0.0 বা উচ্চতর সংস্করণে আপডেট করুন ৷
আপডেট হওয়া SDK টুলগুলি আপনাকে টিভির জন্য অ্যাপ তৈরি এবং পরীক্ষা করতে দেয়। - Android 5.0 (API 21) বা উচ্চতর সংস্করণের সাথে আপনার SDK আপডেট করুন৷
আপডেট হওয়া প্ল্যাটফর্ম সংস্করণটি টিভি অ্যাপের জন্য নতুন API প্রদান করে। - আপনার অ্যাপ প্রকল্প তৈরি বা আপডেট করুন।
টিভি ডিভাইসের জন্য নতুন API অ্যাক্সেস করতে, একটি প্রকল্প তৈরি করুন বা একটি বিদ্যমান প্রকল্প সংশোধন করুন যা লক্ষ্য করে Android 5.0 (API স্তর 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-এ প্রদর্শিত হবে না।
একটি হোম স্ক্রীন আইকন এবং ব্যানার প্রদান করুন
অ্যান্ড্রয়েড টিভি অ্যাপ্লিকেশানগুলিকে অবশ্যই প্রতিটি স্থানীয়করণের জন্য একটি হোম স্ক্রীন আইকন এবং একটি ব্যানার ছবি উভয়ই প্রদান করতে হবে৷ অ্যান্ড্রয়েড টিভি ডিভাইসের উপর নির্ভর করে, আইকন বা ব্যানার অ্যাপ লঞ্চ পয়েন্ট হিসাবে ব্যবহৃত হয় যা অ্যাপ এবং গেমের সারিতে হোম স্ক্রিনে প্রদর্শিত হয়।
আপনার অ্যাপে এগুলি যোগ করতে, ম্যানিফেস্টে আইকন এবং ব্যানারটি নিম্নরূপ বর্ণনা করুন:
<application ... android:icon="@mipmap/ic_launcher" android:banner="@drawable/banner" > ... </application>
হোম স্ক্রীন আইকন
অ্যান্ড্রয়েড টিভি অ্যাপ্লিকেশানগুলি, সমস্ত Android অ্যাপ্লিকেশানগুলির মতো, অবশ্যই একটি হোম স্ক্রীন আইকন প্রদান করবে৷ আপনার অ্যাপের জন্য একটি দুর্দান্ত লঞ্চ পয়েন্ট ডিজাইন করার সর্বোত্তম অনুশীলন এবং বিশদ সম্পদের প্রয়োজনীয়তার জন্য, Android TV অ্যাপ আইকন এবং ব্যানার নির্দেশিকা দেখুন।
হোম স্ক্রীন ব্যানার
সমস্ত অ্যাপ্লিকেশন ক্রিয়াকলাপের জন্য একটি ডিফল্ট ব্যানার সরবরাহ করতে, অথবা একটি নির্দিষ্ট কার্যকলাপের জন্য একটি ব্যানার সরবরাহ করতে <activity>
ট্যাগের সাথে <application>
ট্যাগের সাথে android:banner
বৈশিষ্ট্যটি ব্যবহার করুন।
ব্যানারের জন্য, 320 x 180 px আকারের একটি xhdpi সম্পদ ব্যবহার করুন। টেক্সট ইমেজ অন্তর্ভুক্ত করা আবশ্যক. যদি আপনার অ্যাপ একাধিক ভাষায় উপলব্ধ হয়, তাহলে আপনাকে অবশ্যই প্রতিটি সমর্থিত ভাষার জন্য পাঠ্য সহ ব্যানারের পৃথক সংস্করণ প্রদান করতে হবে।
লঞ্চারের রঙ পরিবর্তন করুন
সতর্কতা: Android 12 এবং উচ্চতর সংস্করণে, SplashScreen
প্ল্যাটফর্ম API ব্যবহার করে তৈরি কাস্টম স্প্ল্যাশ স্ক্রিন অ্যানিমেশনগুলি 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-এর জন্য একটি অ্যাপ তৈরি করুন
জেটপ্যাক টিভি অ্যাপের সাথে ব্যবহারের জন্য androidx প্যাকেজ লাইব্রেরি অন্তর্ভুক্ত করে।
টিভির জন্য রচনা করুন
কম্পোজ হল Android TV OS-এর জন্য অ্যাপ তৈরি করার প্রস্তাবিত উপায়। মূল কম্পোজ লাইব্রেরির পাশাপাশি, টিভি লাইব্রেরির জন্য কম্পোজ বিশেষভাবে বড় স্ক্রিনের জন্য ডিজাইন করা ডেডিকেটেড উপাদান সরবরাহ করে:
অ্যান্ড্রয়েড টিভিতে জেটপ্যাক কম্পোজ ব্যবহার করে টিভির জন্য কম্পোজ ব্যবহার করে কীভাবে একটি টিভি অ্যাপ তৈরি করবেন তা আবিষ্কার করুন।
Leanback UI টুলকিট
Leanback UI টুলকিট টিভি ডিভাইসের জন্য API এবং ইউজার ইন্টারফেস উইজেট প্রদান করে:
-
androidx.leanback.app
-
androidx.leanback.database
-
androidx.leanback.graphics
-
androidx.leanback.media
-
androidx.leanback.preference
-
androidx.leanback.system
-
androidx.leanback.widget
-
androidx.leanback.widget.picker
বিল্ড টিভি প্লেব্যাক অ্যাপে Leanback UI টুলকিট ব্যবহার করে কীভাবে একটি টিভি অ্যাপ তৈরি করবেন তা আবিষ্কার করুন।
টিভি অ্যাপ চালান
আপনার অ্যাপ চালানো উন্নয়ন প্রক্রিয়ার একটি গুরুত্বপূর্ণ অংশ। আপনি USB ডিবাগিং সমর্থন করতে বা ভার্চুয়াল টিভি ডিভাইস ব্যবহার করতে কনফিগার করা টিভি ডিভাইসে আপনার অ্যাপ চালাতে পারেন।
একটি শারীরিক ডিভাইস চালান
আপনার টিভি ডিভাইসটি নিম্নরূপ সেট আপ করুন:
- আপনার টিভি ডিভাইসটিকে আপনার ডেভেলপমেন্ট মেশিনের সাথে সংযুক্ত করতে একটি USB কেবল ব্যবহার করুন৷ প্রয়োজন হলে, আপনার ডিভাইস প্রস্তুতকারকের দ্বারা প্রদত্ত ডকুমেন্টেশন পড়ুন।
- আপনার টিভি ডিভাইসে, সেটিংসে নেভিগেট করুন।
- ডিভাইস সারিতে, সম্পর্কে নির্বাচন করুন।
- বিল্ডে স্ক্রোল করুন এবং "আপনি এখন একজন বিকাশকারী!" বার্তা না পাওয়া পর্যন্ত বেশ কয়েকবার বিল্ড নির্বাচন করুন।
- সেটিংসে ফিরে যান। পছন্দের সারিতে, বিকাশকারী বিকল্পগুলি নির্বাচন করুন।
- ডিবাগিং > USB ডিবাগিং নির্বাচন করুন এবং চালু নির্বাচন করুন।
- টিভি হোম স্ক্রিনে ফিরে যান।
আপনার টিভি ডিভাইসে আপনার অ্যাপ্লিকেশন পরীক্ষা করতে:
- অ্যান্ড্রয়েড স্টুডিওতে, আপনার প্রকল্প নির্বাচন করুন এবং রান ক্লিক করুন
টুলবার থেকে।
- ডিপ্লয়মেন্ট টার্গেট নির্বাচন করুন উইন্ডোতে, আপনার টিভি ডিভাইস নির্বাচন করুন এবং ঠিক আছে ক্লিক করুন।
ভার্চুয়াল ডিভাইসে চালান
Android SDK-এর AVD ম্যানেজার ডিভাইসের সংজ্ঞা প্রদান করে যা আপনাকে আপনার অ্যাপ্লিকেশন চালানো এবং পরীক্ষা করার জন্য ভার্চুয়াল টিভি ডিভাইস তৈরি করতে দেয়।
একটি ভার্চুয়াল টিভি ডিভাইস তৈরি করতে:
- AVD ম্যানেজার শুরু করুন। আরও তথ্যের জন্য, ভার্চুয়াল ডিভাইস তৈরি এবং পরিচালনা দেখুন।
- AVD ম্যানেজার ডায়ালগে, ডিভাইসের সংজ্ঞা ট্যাবে ক্লিক করুন।
- Android TV ডিভাইসের সংজ্ঞাগুলির একটি নির্বাচন করুন এবং AVD তৈরি করুন ক্লিক করুন।
- এমুলেটর বিকল্পগুলি নির্বাচন করুন এবং AVD তৈরি করতে ওকে ক্লিক করুন।
দ্রষ্টব্য: টিভি এমুলেটর ডিভাইসের সেরা পারফরম্যান্সের জন্য, x86 এমুলেটর ব্যবহার করুন এবং হোস্ট জিপিইউ বিকল্পটি সক্রিয় করুন। ভার্চুয়াল ডিভাইস ত্বরণ ব্যবহার করুন যখন এটি উপলব্ধ। এমুলেটরের হার্ডওয়্যার ত্বরণ সম্পর্কে আরও তথ্যের জন্য, Android এমুলেটরের জন্য হার্ডওয়্যার ত্বরণ কনফিগার করুন দেখুন।
ভার্চুয়াল টিভি ডিভাইসে আপনার অ্যাপ্লিকেশন পরীক্ষা করতে:
- অ্যান্ড্রয়েড স্টুডিওতে, আপনার প্রকল্প নির্বাচন করুন এবং রান ক্লিক করুন
টুলবার থেকে।
- ডিপ্লয়মেন্ট টার্গেট নির্বাচন করুন উইন্ডোতে, আপনার ভার্চুয়াল টিভি ডিভাইস নির্বাচন করুন এবং ঠিক আছে ক্লিক করুন।
এমুলেটর ব্যবহার সম্পর্কে আরও তথ্যের জন্য, Android এমুলেটরে অ্যাপ চালান দেখুন। অ্যান্ড্রয়েড স্টুডিও থেকে ভার্চুয়াল ডিভাইসে অ্যাপ স্থাপনের বিষয়ে আরও তথ্যের জন্য, আপনার অ্যাপ ডিবাগ করুন দেখুন।
একটি তাত্ক্ষণিক অভিজ্ঞতা হিসাবে চালানোর জন্য আপনার টিভি অ্যাপ্লিকেশন সক্ষম করুন৷
তাত্ক্ষণিক অভিজ্ঞতা ব্যবহারকারীদের জন্য আপনার টিভি অ্যাপ ব্যবহার করে দেখতে সহজ করে এবং গ্রহণ বাড়াতে সাহায্য করতে পারে।
একটি Android TV ডিভাইস বা এমুলেটরে একটি তাত্ক্ষণিক অ্যাপ হিসাবে চালানোর জন্য আপনার TV অ্যাপ সেট আপ করতে, প্রথমে একটি তাত্ক্ষণিক-সক্ষম অ্যাপ বান্ডেল তৈরি করতে নির্দেশাবলী অনুসরণ করুন।
এরপরে, আপনার TV অ্যাপের MainActivity
এর জন্য intent-filter
, নিশ্চিত হন যে 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>
আপনার টিভি অ্যাপটি এখন তাত্ক্ষণিক অভিজ্ঞতা হিসাবে চালানোর জন্য কনফিগার করা হয়েছে৷
প্রকাশনার জন্য আপনার টিভি অ্যাপ প্রস্তুত করুন
প্রকাশনা এবং বিতরণের জন্য আপনার টিভি অ্যাপ প্রস্তুত করার পরবর্তী ধাপগুলির জন্য TV অ্যাপের চেকলিস্ট পর্যালোচনা করুন।