টিভি অ্যাপগুলো ফোন এবং ট্যাবলেটের অ্যাপের মতোই একই কাঠামো ব্যবহার করে। এই সাদৃশ্যের কারণে, আপনি আপনার বিদ্যমান অ্যাপগুলোকে টিভি ডিভাইসেও চালানোর জন্য পরিবর্তন করতে পারেন, অথবা অ্যান্ড্রয়েডের জন্য অ্যাপ তৈরির বিষয়ে আপনার পূর্বজ্ঞানের উপর ভিত্তি করে নতুন অ্যাপ তৈরি করতে পারেন।
গুরুত্বপূর্ণ: গুগল প্লে-তে অ্যান্ড্রয়েড টিভি অ্যাপ হিসেবে যোগ্যতা অর্জনের জন্য আপনার অ্যাপটিকে নির্দিষ্ট কিছু শর্ত পূরণ করতে হবে। আরও তথ্যের জন্য, টিভি অ্যাপের গুণমান বিভাগে তালিকাভুক্ত শর্তাবলী দেখুন।
এই নির্দেশিকায় টিভি অ্যাপ তৈরির জন্য আপনার ডেভেলপমেন্ট এনভায়রনমেন্ট কীভাবে প্রস্তুত করবেন এবং টিভি ডিভাইসে একটি অ্যাপ চালানোর জন্য প্রয়োজনীয় ন্যূনতম পরিবর্তনগুলো বর্ণনা করা হয়েছে।
টিভির জন্য অ্যাপ ডিজাইন করার বিষয়ে তথ্যের জন্য, ডিজাইন ফর টিভি (Design for TV) দেখুন। এছাড়াও অ্যান্ড্রয়েড টিভি গিটহাব রিপোজিটরিতে থাকা নমুনা অ্যাপগুলো দেখুন।
মিডিয়া ফরম্যাট সমর্থন নির্ধারণ করুন
অ্যান্ড্রয়েড টিভি দ্বারা সমর্থিত কোডেক, প্রোটোকল এবং ফরম্যাট সম্পর্কে তথ্যের জন্য নিম্নলিখিত ডকুমেন্টেশন দেখুন:
একটি টিভি প্রজেক্ট সেট আপ করুন
এই বিভাগে একটি টিভি প্রজেক্ট কীভাবে সেট আপ করতে হয় তা আলোচনা করা হয়েছে, তা সে টিভি ডিভাইসে চালানোর জন্য বিদ্যমান কোনো অ্যান্ড্রয়েড অ্যাপ পরিবর্তন করার ক্ষেত্রেই হোক বা নতুন কোনো টিভি অ্যাপ তৈরি করার ক্ষেত্রেই হোক। আপনার যদি আগে থেকে কোনো অ্যান্ড্রয়েড অ্যাপ থাকে, তবে অ্যান্ড্রয়েড টিভি সাপোর্ট যোগ করার মাধ্যমে আপনি আপনার বিদ্যমান অ্যাপ আর্কিটেকচারটি পুনরায় ব্যবহার করেই টিভির জন্য একটি ইউজার ইন্টারফেস ডিজাইন করতে পারবেন।
টিভি ডিভাইসে চলে এমন অ্যাপ তৈরি করার সময় দুটি প্রধান উপাদান ব্যবহার করা হয়:
- টিভির জন্য অ্যাক্টিভিটি: আপনার অ্যাপ্লিকেশন ম্যানিফেস্টে এমন একটি অ্যাক্টিভিটি ঘোষণা করুন যা টিভি ডিভাইসে চালানোর জন্য তৈরি।
- টিভি লাইব্রেরি: ঐচ্ছিকভাবে, টিভি ডিভাইসের জন্য উপলব্ধ এক বা একাধিক androidx লাইব্রেরি অন্তর্ভুক্ত করুন, যেগুলোর তালিকা এই গাইডের অন্য একটি বিভাগে দেওয়া আছে। এই লাইব্রেরিগুলো ইউজার ইন্টারফেস তৈরির জন্য উইজেট সরবরাহ করে।
পূর্বশর্ত
টিভির জন্য অ্যাপ তৈরি শুরু করার আগে, আপনাকে অবশ্যই নিম্নলিখিত পদক্ষেপগুলো নিতে হবে:
- আপনার SDK টুলস সংস্করণ 24.0.0 বা উচ্চতর সংস্করণে আপডেট করুন ।
আপডেট করা SDK টুলগুলো আপনাকে টিভির জন্য অ্যাপ তৈরি ও পরীক্ষা করতে সাহায্য করে। - আপনার SDK-কে Android 5.0 (API 21) বা উচ্চতর সংস্করণে আপডেট করুন।
প্ল্যাটফর্মের হালনাগাদ সংস্করণটিতে টিভি অ্যাপের জন্য নতুন এপিআই যুক্ত করা হয়েছে। - আপনার অ্যাপ প্রজেক্ট তৈরি বা আপডেট করুন।
টিভি ডিভাইসের জন্য নতুন এপিআই অ্যাক্সেস করতে, অ্যান্ড্রয়েড ৫.০ (এপিআই লেভেল ২১) বা তার উচ্চতর সংস্করণকে টার্গেট করে একটি প্রজেক্ট তৈরি করুন অথবা বিদ্যমান কোনো প্রজেক্ট পরিবর্তন করুন।
একটি টিভি কার্যক্রম ঘোষণা করুন
টিভি ডিভাইসে চালানোর জন্য তৈরি কোনো অ্যাপ্লিকেশনকে তার ম্যানিফেস্টে টিভির জন্য একটি লঞ্চার অ্যাক্টিভিটি ঘোষণা করতে হবে। এটি করার জন্য একটি CATEGORY_LEANBACK_LAUNCHER ইন্টেন্ট ফিল্টার ব্যবহার করা হয়। এই ফিল্টারটি আপনার অ্যাপটিকে টিভির জন্য সক্ষম হিসেবে চিহ্নিত করে এবং গুগল প্লে-কে এটিকে একটি টিভি অ্যাপ হিসেবে শনাক্ত করতে সাহায্য করে। যখন কোনো ব্যবহারকারী তাদের টিভির হোম স্ক্রিনে আপনার অ্যাপটি নির্বাচন করেন, তখন এই ইন্টেন্টটি নির্ধারণ করে দেয় যে কোন অ্যাক্টিভিটিটি চালু করতে হবে।
নিম্নলিখিত কোড স্নিপেটটি দেখায় কিভাবে আপনার ম্যানিফেস্টে এই ইন্টেন্ট ফিল্টারটি অন্তর্ভুক্ত করতে হয়:
<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 চালানো ব্যবহারকারীরা এটি দেখতে পাবেন না। এছাড়াও, আপনি যখন ডেভেলপার টুলস ব্যবহার করে কোনো টিভি ডিভাইসে আপনার অ্যাপটি লোড করবেন, তখন যদি এই ফিল্টারটি না থাকে, তাহলে অ্যাপটি টিভির ইউজার ইন্টারফেসে প্রদর্শিত হবে না।
আপনার টিভি অ্যাপের ইউজার ইন্টারফেস, অথবা আপনার বিদ্যমান অ্যাপের টিভি অংশটিতে এমন একটি সরল ইন্টারফেস থাকতে হবে, যা ১০ ফুট দূর থেকে রিমোট কন্ট্রোল ব্যবহার করে সহজে নেভিগেট করা যায়। আপনি যদি টিভিতে ব্যবহারের জন্য কোনো বিদ্যমান অ্যাপ পরিবর্তন করেন, তবে ফোন এবং ট্যাবলেটের জন্য ব্যবহৃত অ্যাক্টিভিটি লেআউটটি টিভির জন্য ব্যবহার করবেন না। টিভির জন্য অ্যাপ ডিজাইন করার নির্দেশিকার জন্য, ‘ডিজাইন ফর টিভি’ দেখুন।
টিভি ডিভাইস সমর্থন ঘোষণা করুন
android.software.leanback ফিচারটি ডিক্লেয়ার করার মাধ্যমে ঘোষণা করুন যে আপনার অ্যাপটি অ্যান্ড্রয়েড টিভির জন্য তৈরি করা হয়েছে।
আপনার অ্যাপটি যদি মোবাইল এবং টিভি উভয় ডিভাইসেই চলে, তাহলে required অ্যাট্রিবিউটের মান false সেট করুন। যদি আপনি required অ্যাট্রিবিউটের মান true সেট করেন, তাহলে গুগল প্লে আপনার অ্যাপটি শুধুমাত্র অ্যান্ড্রয়েড টিভি ওএস-এ উপলব্ধ করবে।
<manifest> <uses-feature android:name="android.software.leanback" android:required="false" /> ... </manifest>
টাচস্ক্রিনের প্রয়োজন নেই বলে ঘোষণা করুন।
যে অ্যাপ্লিকেশনগুলো টিভি ডিভাইসে চালানোর জন্য তৈরি করা হয়, সেগুলো ইনপুটের জন্য টাচস্ক্রিনের উপর নির্ভর করে না। এই বিষয়টি স্পষ্ট করার জন্য, আপনার টিভি অ্যাপের ম্যানিফেস্টে অবশ্যই ঘোষণা করতে হবে যে android.hardware.touchscreen ফিচারটির প্রয়োজন নেই। এই সেটিংটি আপনার অ্যাপকে টিভি ডিভাইসে কাজ করতে সক্ষম হিসেবে চিহ্নিত করে, এবং গুগল প্লে-তে আপনার অ্যাপকে একটি টিভি অ্যাপ হিসেবে গণ্য করার জন্য এটি আবশ্যক। নিচের কোড উদাহরণটি দেখায় কিভাবে এই ম্যানিফেস্ট ঘোষণাটি অন্তর্ভুক্ত করতে হয়:
<manifest> <uses-feature android:name="android.hardware.touchscreen" android:required="false" /> ... </manifest>
সতর্কতা: আপনার অ্যাপ ম্যানিফেস্টে অবশ্যই ঘোষণা করতে হবে যে টাচস্ক্রিনের প্রয়োজন নেই, যেমনটি এই উদাহরণ কোডে দেখানো হয়েছে। অন্যথায়, আপনার অ্যাপটি টিভি ডিভাইসের গুগল প্লে-তে প্রদর্শিত হবে না।
হোম স্ক্রিন আইকন এবং ব্যানার প্রদান করুন
অ্যান্ড্রয়েড টিভি অ্যাপগুলিতে প্রতিটি স্থানীয়করণের জন্য একটি হোম স্ক্রিন আইকন এবং একটি ব্যানার ইমেজ উভয়ই থাকতে হবে। অ্যান্ড্রয়েড টিভি ডিভাইসের উপর নির্ভর করে, হোম স্ক্রিনের অ্যাপস এবং গেমস সারিতে অ্যাপ চালু করার স্থান হিসাবে আইকন বা ব্যানারটি ব্যবহৃত হয়।
আপনার অ্যাপে এগুলো যোগ করতে, ম্যানিফেস্টে আইকন এবং ব্যানারটি নিম্নরূপভাবে বর্ণনা করুন:
<application ... android:icon="@mipmap/ic_launcher" android:banner="@drawable/banner" > ... </application>
হোম স্ক্রিন আইকন
অন্যান্য সকল অ্যান্ড্রয়েড অ্যাপের মতোই, অ্যান্ড্রয়েড টিভি অ্যাপেও একটি হোম স্ক্রিন আইকন থাকা আবশ্যক। আপনার অ্যাপের জন্য একটি চমৎকার সূচনা বিন্দু ডিজাইন করার সর্বোত্তম পদ্ধতি এবং বিস্তারিত অ্যাসেট প্রয়োজনীয়তা সম্পর্কে জানতে, অ্যান্ড্রয়েড টিভি অ্যাপ আইকন ও ব্যানার নির্দেশিকা দেখুন।
হোম স্ক্রিন ব্যানার
অ্যাপ্লিকেশনের সমস্ত অ্যাক্টিভিটির জন্য একটি ডিফল্ট ব্যানার সরবরাহ করতে <application> ট্যাগের সাথে android:banner অ্যাট্রিবিউটটি ব্যবহার করুন, অথবা কোনো নির্দিষ্ট অ্যাক্টিভিটির জন্য ব্যানার সরবরাহ করতে <activity> ট্যাগের সাথে এটি ব্যবহার করুন।
ব্যানারের জন্য 320 x 180 পিক্সেল আকারের একটি xhdpi রিসোর্স ব্যবহার করুন। ছবিতে অবশ্যই লেখা অন্তর্ভুক্ত থাকতে হবে। যদি আপনার অ্যাপটি একাধিক ভাষায় উপলব্ধ থাকে, তবে আপনাকে প্রতিটি সমর্থিত ভাষার জন্য লেখাসহ ব্যানারের আলাদা সংস্করণ সরবরাহ করতে হবে।
লঞ্চারের রঙ পরিবর্তন করুন
সতর্কতা: অ্যান্ড্রয়েড ১২ এবং এর পরবর্তী সংস্করণগুলোতে, SplashScreen প্ল্যাটফর্ম এপিআই (SplashScreen platform API) ব্যবহার করে তৈরি কাস্টম স্প্ল্যাশ স্ক্রিন অ্যানিমেশনগুলো অ্যান্ড্রয়েড টিভি অ্যাপের জন্য সমর্থিত নয়।
যখন একটি টিভি অ্যাপ চালু হয়, তখন সিস্টেম একটি অ্যানিমেশন প্রদর্শন করে যা একটি প্রসারিত, ভরাট বৃত্তের মতো দেখতে। এই অ্যানিমেশনের রঙ কাস্টমাইজ করতে, আপনার টিভি অ্যাপ বা অ্যাক্টিভিটির android:colorPrimary অ্যাট্রিবিউটটিকে একটি নির্দিষ্ট রঙে সেট করুন। এছাড়াও, একটি থিম রিসোর্স XML ফাইলের নিম্নলিখিত কোড স্নিপেটে দেখানো অনুযায়ী দুটি transition overlap অ্যাট্রিবিউটকে 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>
থিম এবং স্টাইল নিয়ে কাজ করার বিষয়ে আরও তথ্যের জন্য, স্টাইল এবং থিম দেখুন।
অ্যান্ড্রয়েড টিভি ওএস-এর জন্য একটি অ্যাপ তৈরি করুন
জেটপ্যাকে টিভি অ্যাপে ব্যবহারের জন্য androidx প্যাকেজ লাইব্রেরি অন্তর্ভুক্ত রয়েছে।
টিভির জন্য রচনা করুন
অ্যান্ড্রয়েড টিভি ওএস-এর জন্য অ্যাপ তৈরি করতে কম্পোজই হলো প্রস্তাবিত পদ্ধতি। মূল কম্পোজ লাইব্রেরিগুলোর পাশাপাশি, কম্পোজ ফর টিভি লাইব্রেরিগুলো বড় পর্দার জন্য বিশেষভাবে ডিজাইন করা ডেডিকেটেড কম্পোনেন্ট সরবরাহ করে:
Android TV-তে Jetpack Compose ব্যবহার করে কীভাবে একটি টিভি অ্যাপ তৈরি করবেন তা জানুন।
লিনব্যাক UI টুলকিট
লিনব্যাক UI টুলকিট টিভি ডিভাইসগুলির জন্য এপিআই এবং ইউজার ইন্টারফেস উইজেট সরবরাহ করে:
-
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
"Build TV playback apps" অংশে Leanback UI টুলকিট ব্যবহার করে কীভাবে একটি টিভি অ্যাপ তৈরি করতে হয় তা জানুন।
টিভি অ্যাপ চালান
আপনার অ্যাপ চালানো উন্নয়ন প্রক্রিয়ার একটি গুরুত্বপূর্ণ অংশ। আপনি ইউএসবি ডিবাগিং সমর্থন করে এমন টিভি ডিভাইসে অথবা ভার্চুয়াল টিভি ডিভাইস ব্যবহার করে আপনার অ্যাপ চালাতে পারেন।
একটি ভৌত ডিভাইসে চালান
আপনার টিভি ডিভাইসটি নিম্নরূপভাবে সেট আপ করুন:
- আপনার টিভি ডিভাইসটিকে ডেভেলপমেন্ট মেশিনের সাথে সংযোগ করতে একটি ইউএসবি কেবল ব্যবহার করুন। প্রয়োজনে, আপনার ডিভাইস প্রস্তুতকারকের দেওয়া ডকুমেন্টেশন দেখুন।
- আপনার টিভি ডিভাইসে, সেটিংস- এ যান।
- ডিভাইস সারিতে, অ্যাবাউট নির্বাচন করুন।
- Build- এ স্ক্রোল করুন এবং "You are now a developer!" বার্তাটি না পাওয়া পর্যন্ত বেশ কয়েকবার Build নির্বাচন করুন।
- সেটিংসে ফিরে যান। প্রেফারেন্সেস সারিতে, ডেভেলপার অপশন নির্বাচন করুন।
- ডিবাগিং > ইউএসবি ডিবাগিং নির্বাচন করুন এবং অন নির্বাচন করুন।
- টিভির হোম স্ক্রিনে ফিরে যান।
আপনার টিভি ডিভাইসে অ্যাপ্লিকেশনটি পরীক্ষা করতে:
- অ্যান্ড্রয়েড স্টুডিওতে, আপনার প্রজেক্টটি নির্বাচন করুন এবং রান-এ ক্লিক করুন।
টুলবার থেকে। - 'Select Deployment Target' উইন্ডোতে, আপনার টিভি ডিভাইসটি নির্বাচন করুন এবং 'OK' ক্লিক করুন।
ভার্চুয়াল ডিভাইসে চালান
অ্যান্ড্রয়েড এসডিকে-তে থাকা এভিডি ম্যানেজার ডিভাইস ডেফিনিশন প্রদান করে, যার মাধ্যমে আপনি আপনার অ্যাপ্লিকেশনগুলো চালানো ও পরীক্ষা করার জন্য ভার্চুয়াল টিভি ডিভাইস তৈরি করতে পারেন।
ভার্চুয়াল টিভি ডিভাইস তৈরি করতে:
- এভিডি ম্যানেজার চালু করুন। আরও তথ্যের জন্য, ভার্চুয়াল ডিভাইস তৈরি ও পরিচালনা দেখুন।
- AVD ম্যানেজার ডায়ালগ বক্সে, ডিভাইস ডেফিনিশনস ট্যাবে ক্লিক করুন।
- অ্যান্ড্রয়েড টিভি ডিভাইস ডেফিনিশনগুলোর মধ্যে একটি নির্বাচন করুন এবং Create AVD-তে ক্লিক করুন।
- AVD তৈরি করতে এমুলেটর অপশনগুলো নির্বাচন করুন এবং OK-তে ক্লিক করুন।
দ্রষ্টব্য: টিভি এমুলেটর ডিভাইসের সর্বোত্তম পারফরম্যান্সের জন্য, x86 এমুলেটর ব্যবহার করুন এবং ‘ Use Host GPU’ অপশনটি সক্রিয় করুন। এছাড়াও, ভার্চুয়াল ডিভাইস অ্যাক্সিলারেশন উপলব্ধ থাকলে তা ব্যবহার করুন। এমুলেটরের হার্ডওয়্যার অ্যাক্সিলারেশন সম্পর্কে আরও তথ্যের জন্য, ‘Configure hardware acceleration for the Android Emulator’ দেখুন।
ভার্চুয়াল টিভি ডিভাইসে আপনার অ্যাপ্লিকেশনটি পরীক্ষা করতে:
- অ্যান্ড্রয়েড স্টুডিওতে, আপনার প্রজেক্টটি নির্বাচন করুন এবং রান-এ ক্লিক করুন।
টুলবার থেকে। - Select Deployment Target উইন্ডোতে, আপনার ভার্চুয়াল টিভি ডিভাইসটি নির্বাচন করুন এবং OK-তে ক্লিক করুন।
এমুলেটর ব্যবহার সম্পর্কে আরও তথ্যের জন্য, ‘অ্যান্ড্রয়েড এমুলেটরে অ্যাপ চালান’ দেখুন। অ্যান্ড্রয়েড স্টুডিও থেকে ভার্চুয়াল ডিভাইসে অ্যাপ স্থাপন সম্পর্কে আরও তথ্যের জন্য, ‘আপনার অ্যাপ ডিবাগ করুন’ দেখুন।
আপনার টিভি অ্যাপটিকে একটি তাৎক্ষণিক অভিজ্ঞতা হিসেবে চালু করুন।
তাৎক্ষণিক অভিজ্ঞতা ব্যবহারকারীদের জন্য আপনার টিভি অ্যাপটি ব্যবহার করে দেখা সহজ করে তোলে এবং এর ব্যবহার বাড়াতে সাহায্য করতে পারে।
আপনার টিভি অ্যাপটিকে একটি অ্যান্ড্রয়েড টিভি ডিভাইস বা এমুলেটরে ইনস্ট্যান্ট অ্যাপ হিসেবে চালানোর জন্য, প্রথমে একটি ইনস্ট্যান্ট-সক্ষম অ্যাপ বান্ডেল তৈরি করার নির্দেশাবলী অনুসরণ করুন।
এরপর, আপনার টিভি অ্যাপের MainActivity এর intent-filter , নিশ্চিত করুন যে 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>
আপনার টিভি অ্যাপটি এখন তাৎক্ষণিক অভিজ্ঞতা প্রদানের জন্য কনফিগার করা হয়েছে।
আপনার টিভি অ্যাপটি প্রকাশের জন্য প্রস্তুত করুন
আপনার টিভি অ্যাপটি প্রকাশ ও বিতরণের জন্য প্রস্তুত করতে পরবর্তী পদক্ষেপগুলো জানতে টিভি অ্যাপস চেকলিস্টটি পর্যালোচনা করুন।