ড্রাইভিং করার সময় ব্যবহারের জন্য তৈরি অ্যাপগুলিকে সমর্থন করার পাশাপাশি, Android Automotive OS পার্ক করার সময় ব্যবহারের জন্য ব্রাউজার , গেম এবং ভিডিও অ্যাপগুলিকে সমর্থন করে৷ আপনি শুধুমাত্র কয়েকটি ছোটখাটো পরিবর্তনের সাথে অন্যান্য বড় স্ক্রিনের ডিভাইসে যেভাবে করেন গাড়িতে একই অ্যাপ পাঠাতে পারেন।
Android Automotive OS-এর জন্য পার্ক করা অ্যাপ তৈরি করুন
একটি Android Automotive OS এমুলেটরে আপনার বিদ্যমান অ্যাপ পরীক্ষা করুন
Android Automotive OS-এর জন্য আপনার অ্যাপ তৈরি করা শুরু করতে, প্রথমে একটি Android Automotive OS এমুলেটরে আপনার বিদ্যমান অ্যাপটি পরীক্ষা করুন। একটি এমুলেটর সেট আপ করতে, Android Automotive OS এমুলেটর ব্যবহার করে টেস্টের ধাপগুলি অনুসরণ করুন৷ তারপরে আপনি এমুলেটরে আপনার অ্যাপ চালাতে নির্দেশাবলী অনুসরণ করে অ্যাপটি চালাতে পারেন।
আপনার অ্যাপ চালানোর সময়, সামঞ্জস্যপূর্ণ সমস্যাগুলির জন্য দেখুন, যেমন নিম্নলিখিত:
- ইনফোটেইনমেন্ট স্ক্রীনের স্থির অভিযোজন আছে। গাড়ির অ্যাপের গুণমানের নির্দেশিকা পূরণ করতে, অ্যাপগুলিকে অবশ্যই পোর্ট্রেট এবং ল্যান্ডস্কেপ অভিযোজন উভয় সমর্থন করতে হবে।
- অন্যান্য ডিভাইসে উপলব্ধ APIগুলি Android Automotive OS এ উপলব্ধ নাও হতে পারে৷ উদাহরণস্বরূপ, কিছু Google Play পরিষেবা API Android Automotive OS এ উপলব্ধ নেই৷ এই সমস্যাগুলি কীভাবে পরিচালনা করবেন তার বিশদ বিবরণের জন্য বৈশিষ্ট্যগুলি নিষ্ক্রিয় করুন বিভাগটি দেখুন।
আপনার অ্যাপের ম্যানিফেস্ট ফাইল কনফিগার করুন
Android Automotive OS ডিভাইসগুলিকে টার্গেট করতে, আপনার অ্যাপে অবশ্যই নির্দিষ্ট কিছু ম্যানিফেস্ট এন্ট্রি থাকতে হবে৷ আপনি Android Automotive OS ডিভাইসে বিতরণ করার জন্য অপ্ট-ইন করার পরে, সামঞ্জস্যপূর্ণ অ্যাপগুলিকে একটি ম্যানুয়াল পর্যালোচনা প্রক্রিয়ার মাধ্যমে রাখা হয় যাতে সেগুলি গাড়িতে ব্যবহারের জন্য নিরাপদ কিনা তা নিশ্চিত করতে সহায়তা করে৷ আরও বিস্তারিত জানার জন্য গাড়িতে বিতরণ দেখুন।
প্রয়োজনীয় Android Automotive OS বৈশিষ্ট্য
একটি গাড়িতে প্লে স্টোরে তালিকাভুক্ত হতে, Android Automotive OS-এর জন্য তৈরি অ্যাপগুলিকে android.hardware.type.automotive
বৈশিষ্ট্যের জন্য AndroidManifest.xml
ফাইলে একটি <uses-feature>
উপাদান অন্তর্ভুক্ত করতে হবে:
<manifest ...> ... <!-- Depending on the track you choose to distribute your app, the android:required attribute can also be "false" or left unset. See Choose a track for Android Automotive OS. --> <uses-feature android:name="android.hardware.type.automotive" android:required="[true|false]" /> ... </manifest>
পূর্ববর্তী কোডের নমুনায় দেখানো উপাদান ছাড়াও, Android Automotive OS-এর জন্য নির্মিত অ্যাপগুলিকে অবশ্যই রুট <manifest>
উপাদানে নিম্নলিখিত <uses-feature>
উপাদানগুলি অন্তর্ভুক্ত করতে হবে:
<uses-feature
android:name="android.hardware.wifi"
android:required="false"/>
<uses-feature
android:name="android.hardware.screen.portrait"
android:required="false"/>
<uses-feature
android:name="android.hardware.screen.landscape"
android:required="false"/>
স্পষ্টভাবে এই বৈশিষ্ট্যগুলিকে অপ্রয়োজনীয় হিসাবে সেট করা নিশ্চিত করতে সাহায্য করে যে আপনার অ্যাপটি Android Automotive OS ডিভাইসে উপলব্ধ হার্ডওয়্যার বৈশিষ্ট্যগুলির সাথে বিরোধ করছে না ৷
কোন বিভ্রান্তি-অপ্টিমাইজ করা কার্যকলাপ আছে নিশ্চিত করুন
আপনার অ্যাপটি পার্ক করার সময় শুধুমাত্র ব্যবহারের জন্য উপলব্ধ রয়েছে তা নিশ্চিত করতে, আপনার ম্যানিফেস্টের মধ্যে যেকোনও <activity>
উপাদানে নিম্নলিখিত <meta-data>
উপাদানটি অন্তর্ভুক্ত করবেন না :
<!-- NOT ALLOWED -->
<meta-data
android:name="distractionOptimized"
android:value="true"/>
এই মেটাডেটা ব্যতীত, আপনার অ্যাপের ক্রিয়াকলাপগুলি OS দ্বারা স্বয়ংক্রিয়ভাবে অবরুদ্ধ হয়ে যায় যখন গাড়িটি ড্রাইভিং মোডে প্রবেশ করে, যাতে ড্রাইভারের বিভ্রান্তি কম হয়৷ এটি একটি onPause
লাইফসাইকেল কলব্যাক হিসাবে ঘটে, যার সময় আপনাকে অবশ্যই আপনার অ্যাপ থেকে ভিডিও এবং অডিও প্লেব্যাক উভয়ই বিরতি দিতে হবে।
বিভাগ-নির্দিষ্ট ম্যানিফেস্ট এন্ট্রি
পূর্ববর্তী প্রয়োজনীয়তাগুলি ছাড়াও, যা সমস্ত পার্ক করা অ্যাপে প্রযোজ্য, ভিডিও এবং গেমের বিভাগগুলির অতিরিক্ত প্রয়োজনীয়তা রয়েছে:
- ভিডিও অ্যাপের জন্য, আপনার অ্যাপটিকে একটি ভিডিও অ্যাপ হিসেবে চিহ্নিত করুন দেখুন।
- গেমগুলির জন্য, আপনার অ্যাপটিকে একটি গেম হিসাবে চিহ্নিত করুন দেখুন৷
Android Automotive OS এর জন্য আপনার অ্যাপটি অপ্টিমাইজ করুন
আপনার ব্যবহারকারীদের সম্ভাব্য সর্বোত্তম অভিজ্ঞতা দিতে, Android Automotive OS-এর জন্য আপনার অ্যাপ তৈরি করার সময় নিম্নলিখিত বিষয়গুলি মাথায় রাখুন৷
বড় পর্দার জন্য অপ্টিমাইজ করুন
অ্যান্ড্রয়েড অটোমোটিভ ওএস গাড়িতে উপস্থিত স্ক্রিনগুলি ফোনের তুলনায় ট্যাবলেট এবং ফোল্ডেবলের আকার, রেজোলিউশন এবং আকৃতির অনুপাতের সাথে অনেক বেশি মিল। যেমন, বড় স্ক্রিনের জন্য আপনার অ্যাপটি অপ্টিমাইজ করা গাড়িতে থাকা আপনার ব্যবহারকারীদেরও উপকার করে।
বিশেষ করে, ডিজাইনের অনুপ্রেরণা এবং নির্দেশনার জন্য সর্বাধিক বড় ডিসপ্লে মাপের বিস্তারিত বিবরণের জন্য বিভিন্ন ডিসপ্লে মাপের সমর্থন দেখুন, সেইসাথে মিডিয়া এবং গেম গ্যালারীগুলি।
অন্যান্য বড় স্ক্রীন অপ্টিমাইজেশান যেমন ইনপুট সামঞ্জস্যতা Android Automotive OS এর জন্য সরাসরি উপকারী নয়, তবে তারা এখনও ব্যবহারকারীর অভিজ্ঞতা উন্নত করতে পারে। উদাহরণস্বরূপ, কীবোর্ড নেভিগেশন ঘূর্ণমান নেভিগেশন হিসাবে একই API ব্যবহার করে, তাই সেখানে করা যেকোনো অপ্টিমাইজেশন উভয় ফর্ম ফ্যাক্টরকে উপকৃত করতে পারে।
উইন্ডো ইনসেট এবং প্রদর্শন কাটআউটগুলির সাথে কাজ করুন
অন্যান্য ফর্ম ফ্যাক্টরগুলির মতো, Android Automotive OS-এ সিস্টেম UI উপাদানগুলি অন্তর্ভুক্ত রয়েছে, যেমন স্ট্যাটাস এবং নেভিগেশন বার এবং অ-আয়তাকার প্রদর্শনের জন্য সমর্থন।
ডিফল্টরূপে, অ্যাপগুলি এমন একটি এলাকায় আঁকে যা সিস্টেম বার বা ডিসপ্লে কাটআউটগুলির সাথে ওভারল্যাপ করে না। যাইহোক, আপনি আপনার অ্যাপটি সিস্টেম বারগুলি লুকিয়ে রাখতে, তাদের পিছনে সামগ্রী আঁকতে বা উইন্ডো ইনসেটের মধ্যে আপনার অ্যাপ লে আউটে বর্ণিত ডিসপ্লে কাটআউটে সামগ্রী দেখাতে চাইতে পারেন। যদি আপনার অ্যাপ এগুলির কোনোটি করে থাকে, তাহলে Android Automotive OS ডিভাইসের ইকোসিস্টেম জুড়ে কীভাবে আপনার অ্যাপটিকে ভালভাবে কাজ করতে দেওয়া যায় তার বিশদ বিবরণের জন্য নিম্নলিখিত উপবিভাগগুলি পড়ুন।
সিস্টেম বার, ইমারসিভ মোড এবং এজ-টু-এজ রেন্ডারিং
গাড়ির সিস্টেম বারগুলি অন্যান্য ফর্মের কারণগুলির তুলনায় আলাদাভাবে আকার এবং অবস্থান করা যেতে পারে। উদাহরণস্বরূপ, নেভিগেশন বারগুলি স্ক্রিনের বাম, ডান বা নীচে অবস্থিত হতে পারে। এমনকি যে ক্ষেত্রে উপরে একটি স্ট্যাটাস বার এবং নীচে একটি নেভিগেশন বার রয়েছে (যেমনটি বেশিরভাগ ফোন এবং ট্যাবলেটের ক্ষেত্রে), এই উপাদানগুলির আকার সম্ভবত গাড়িতে অনেক বেশি হবে।
উপরন্তু, Android Automotive OS ইমারসিভ মোডে প্রবেশ এবং প্রস্থান করার জন্য অ্যাপগুলি সিস্টেম বারগুলি দেখাতে বা লুকিয়ে রাখতে পারে কিনা তা নিয়ন্ত্রণ করতে OEM-কে অনুমতি দেয়৷ উদাহরণ স্বরূপ, অ্যাপগুলিকে সিস্টেম বার লুকিয়ে রাখতে বাধা দিয়ে, OEMগুলি নিশ্চিত করতে পারে যে যানবাহন নিয়ন্ত্রণগুলি, যেমন জলবায়ু নিয়ন্ত্রণগুলি, সর্বদা স্ক্রিনে অ্যাক্সেসযোগ্য৷ যদি কোনও OEM অ্যাপগুলিকে সিস্টেম বারগুলি নিয়ন্ত্রণ করতে বাধা দেয় তবে কোনও অ্যাপ যখন সিস্টেম বারগুলি দেখাতে বা লুকানোর জন্য WindowInsetsController
(বা WindowInsetsControllerCompat
) API-কে কল করে তখন কিছুই ঘটে না৷ আপনার অ্যাপ ইনসেটগুলি সংশোধন করতে সক্ষম হয়েছে কিনা তা কীভাবে সনাক্ত করা যায় সে সম্পর্কে আরও জানতে show
এবং hide
ডকুমেন্টেশন পড়ুন।
একইভাবে, OEM গুলি নিয়ন্ত্রণ করতে পারে যে অ্যাপগুলি সিস্টেম বারগুলির রঙ এবং স্বচ্ছতা সেট করতে পারে কিনা তা নিশ্চিত করতে যে বার এবং তাদের মধ্যে থাকা উপাদানগুলি সর্বদা স্পষ্টভাবে দৃশ্যমান হয়। যদি আপনার অ্যাপ এজ-টু-এজ ড্র করে, তবে পরীক্ষা করুন যে শুধুমাত্র অ-সমালোচনামূলক সামগ্রী সিস্টেম বারের পিছনে আঁকা হয়েছে। ডিভাইস OEM যদি বারগুলির রঙ বা স্বচ্ছতা সেট করতে বাধা দেয় তবে এই সামগ্রীটি দৃশ্যমান নাও হতে পারে৷
<!-- Depending on OEM configuration, these style declarations
(and the corresponding runtime calls) may be ignored -->
<style name="...">
<item name="android:statusBarColor">...</item>
<item name="android:navigationBarColor">...</item>
<item name="android:windowTranslucentStatus">...</item>
<item name="android:windowTranslucentNavigation">...</status>
</style>
যদি আপনার অ্যাপ এজ-টু-এজ যায়, তাহলে সিস্টেম বারের আকার, সংখ্যা, ধরন বা অবস্থান সম্পর্কে অনুমান করবেন না। পরিবর্তে, সিস্টেম বারের সাপেক্ষে আপনার অ্যাপের বিষয়বস্তু সাজাতে উইন্ডো ইনসেট API ব্যবহার করুন। এই APIগুলি কীভাবে ব্যবহার করবেন সে সম্পর্কে আরও বিশদ বিবরণের জন্য আপনার অ্যাপে এজ-টু-এজ প্রদর্শন সামগ্রী দেখুন। হার্ড কোডেড প্যাডিং মানগুলি, যা কখনই সুপারিশ করা হয় না, অন্যান্য ডিভাইসে সামগ্রীকে নিরাপদ জায়গায় রাখতে পারে, সম্ভবত গাড়িতে থাকবে না৷
অনিয়মিত আকারের ডিসপ্লেতে মানিয়ে নিন
আয়তক্ষেত্রাকার ডিসপ্লে ছাড়াও, কিছু গাড়ির অনিয়মিত আকারের স্ক্রিন থাকতে পারে, যেমন চিত্র 1 এ দেখানো হয়েছে:
যদি আপনার অ্যাপ এজ-টু-এজ রেন্ডার না করে, তাহলে নিরাপদ এলাকার মধ্যে রেন্ডার করার জন্য আপনাকে কিছু করতে হবে না।
যদি আপনার অ্যাপ এজ-টু-এজ রেন্ডার করে, তাহলে কাটআউট প্রদর্শনের ক্ষেত্রে আপনি কীভাবে আচরণ করতে চান তা বেছে নিতে পারেন। আপনি আপনার অ্যাপের থিমের জন্য android:windowLayoutInDisplayCutoutMode
অ্যাট্রিবিউট সেট করে বা উইন্ডোর layoutInDisplayCutoutMode
অ্যাট্রিবিউট পরিবর্তন করে রানটাইমে রিসোর্স ব্যবহার করে এটি সম্পন্ন করতে পারেন।
যেহেতু Android Automotive OS ডিভাইসগুলিতে উপস্থিত ডিসপ্লে কাটআউটগুলির ধরনগুলি মোবাইল ডিভাইসগুলির থেকে আলাদা, তাই LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT
বা LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES
ব্যবহার করবেন না, যেগুলি মোবাইল ডিভাইসগুলিতে পাওয়া কাটআউটগুলির জন্য অপ্টিমাইজ করা আচরণ রয়েছে৷ পরিবর্তে, সর্বদা এড়াতে বা সর্বদা কাটআউট প্রবেশ করতে LAYOUT_IN_DISPLAY_CUTOUT_MODE_NEVER
বা LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS
ব্যবহার করুন। পরবর্তীটি বেছে নেওয়ার সময়, প্রদর্শন কাটআউটগুলির সাথে সম্পর্কিত APIগুলির আরও বিশদ বিবরণের জন্য সমর্থন প্রদর্শন কাটআউটগুলি দেখুন৷
যদি আপনার অ্যাপটি ডিসপ্লে কাটআউট এলাকায় রেন্ডার করে এবং আপনি অ্যান্ড্রয়েড অটোমোটিভ ওএস এবং মোবাইলের মধ্যে ভিন্ন আচরণ করতে চান, তাহলে নির্দেশনার জন্য বৈশিষ্ট্যগুলি অক্ষম করুন দেখুন যদি আপনার অ্যাপ রানটাইমে এই আচরণটি সেট করে এবং যদি আপনার অ্যাপ সম্পদ ব্যবহার করে এই আচরণ সেট করে তাহলে বিকল্প সংস্থান ব্যবহার করুন ফাইল
বৈশিষ্ট্যগুলি অক্ষম করুন
আপনি যদি Android Automotive OS-এ একটি বিদ্যমান মোবাইল অ্যাপ উপলব্ধ করে থাকেন, তাহলে কিছু বৈশিষ্ট্য এবং কার্যকারিতা প্রাসঙ্গিক বা উপলব্ধ নাও হতে পারে। উদাহরণস্বরূপ, গাড়িগুলি সাধারণত ক্যামেরাগুলিতে অ্যাক্সেস সরবরাহ করে না। অতিরিক্তভাবে, Android Automotive OS-তে Google Play পরিষেবাগুলির শুধুমাত্র একটি উপসেট উপলব্ধ; আরো বিস্তারিত জানার জন্য গাড়ির জন্য Google Play পরিষেবা দেখুন।
আপনি নিম্নলিখিত উদাহরণে দেখানো FEATURE_AUTOMOTIVE
বৈশিষ্ট্যটি পরীক্ষা করে অ্যাপ্লিকেশানটি Android Automotive OS-এ চলছে কিনা তা সনাক্ত করতে PackageManager.hasSystemFeature
API ব্যবহার করতে পারেন:
কোটলিন
val packageManager: PackageManager = ... // Get a PackageManager from a Context val isCar = packageManager.hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE) if (isCar) { // Enable or disable a given feature }
জাভা
PackageManager packageManager = ... // Get a PackageManager from a Context boolean isCar = packageManager.hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE) if (isCar) { // Enable or disable a given feature }
বিকল্পভাবে, যদি আপনার অ্যাপের একটি Android Auto উপাদানও থাকে, তাহলে অ্যাপটি Android Automotive OS বা Android Auto-এ চলছে কিনা তা শনাক্ত করতে আপনি Android for Cars অ্যাপ লাইব্রেরি থেকে CarConnection API ব্যবহার করতে পারেন—অথবা এটি কোনও গাড়ির সাথে সংযুক্ত না থাকলে সব
Picture-in-Picture (PiP) এর জন্য, বৈশিষ্ট্যটি উপলব্ধ কিনা এবং যথাযথভাবে প্রতিক্রিয়া জানাতে প্রতিষ্ঠিত সেরা অনুশীলনগুলি অনুসরণ করুন।
অফলাইন পরিস্থিতি পরিচালনা করুন
যখন গাড়িগুলি ক্রমবর্ধমান ইন্টারনেট সংযুক্ত হচ্ছে, অ্যাপগুলিকে ইন্টারনেট সংযোগ ছাড়াই চালানোর জন্য সুপারিশ করা হয়, যেমন নিম্নলিখিত ক্ষেত্রে:
- ব্যবহারকারীরা অটো মেকার থেকে সাবস্ক্রিপশন প্যাকেজের অংশ হিসাবে অফার করা মোবাইল ডেটা অপ্ট আউট করতে পারে৷
- মোবাইল ডেটার অ্যাক্সেস নির্দিষ্ট এলাকায় সীমিত হতে পারে।
- ওয়াই-ফাই রেডিও সহ গাড়িগুলি ওয়াই-ফাই সীমার বাইরে হতে পারে, বা একটি OEM মোবাইল নেটওয়ার্কের পক্ষে ওয়াই-ফাই বন্ধ করতে পারে৷
অফলাইন বিষয়বস্তু অফার করার মতো ইন্টারনেট অ্যাক্সেসের উপর নির্ভর করে এমন কার্যকারিতাকে সুন্দরভাবে অবনমিত করে আপনার অ্যাপে এই পরিস্থিতিগুলি পরিচালনা করার জন্য প্রস্তুত থাকুন। আরও তথ্যের জন্য, নেটওয়ার্কিং অপ্টিমাইজ করার জন্য সেরা অনুশীলনগুলি দেখুন৷
বিকল্প সম্পদ ব্যবহার করুন
আপনার অ্যাপটিকে গাড়ির জন্য মানিয়ে নিতে সাহায্য করতে, আপনি Android Automotive OS গাড়িতে চলাকালীন বিকল্প সংস্থান প্রদান করতে car
রিসোর্স কোয়ালিফায়ার ব্যবহার করতে পারেন। উদাহরণস্বরূপ, যদি আপনি প্যাডিং মান সঞ্চয় করার জন্য মাত্রা সংস্থান ব্যবহার করেন, তাহলে স্পর্শ লক্ষ্যগুলিকে আরও বড় করতে আপনি car
সংস্থান সেটের জন্য একটি বড় মান ব্যবহার করতে পারেন।
আপনার অ্যাপ্লিকেশন বিতরণ
আপনি গাড়ির অ্যাপের মানের নির্দেশিকা অনুযায়ী আপনার অ্যাপটি পরীক্ষা করার পরে আপনি Google বিল্ট-ইন সহ কারগুলিতে বিতরণ করতে Google Play ব্যবহার করতে পারেন। প্রকাশনার প্রক্রিয়া সম্পর্কে আরও বিস্তারিত জানার জন্য গাড়িতে বিতরণ দেখুন।
পার্ক করা অ্যাপস সম্পর্কে মতামত দিন
অ্যান্ড্রয়েড অটোমোটিভ ওএসের জন্য পার্ক করা অ্যাপ ডেভেলপ করার সময় আপনার যদি কোনো সমস্যা হয় বা কোনো বৈশিষ্ট্যের অনুরোধ থাকে, আপনি Google Issue Tracker ব্যবহার করে রিপোর্ট করতে পারেন। ইস্যু টেমপ্লেটে অনুরোধ করা সমস্ত তথ্য পূরণ করতে ভুলবেন না। একটি নতুন সমস্যা ফাইল করার আগে, এটি ইতিমধ্যেই সমস্যা তালিকায় রিপোর্ট করা আছে কিনা তা পরীক্ষা করে দেখুন। আপনি সাবস্ক্রাইব করতে পারেন এবং ট্র্যাকারে একটি সমস্যার জন্য তারকা ক্লিক করে সমস্যার জন্য ভোট দিতে পারেন। আরও তথ্যের জন্য, একটি ইস্যুতে সদস্যতা নেওয়া দেখুন।
,ড্রাইভিং করার সময় ব্যবহারের জন্য তৈরি অ্যাপগুলিকে সমর্থন করার পাশাপাশি, Android Automotive OS পার্ক করার সময় ব্যবহারের জন্য ব্রাউজার , গেম এবং ভিডিও অ্যাপগুলিকে সমর্থন করে৷ আপনি শুধুমাত্র কয়েকটি ছোটখাটো পরিবর্তনের সাথে অন্যান্য বড় স্ক্রিনের ডিভাইসে যেভাবে করেন গাড়িতে একই অ্যাপ পাঠাতে পারেন।
একটি Android Automotive OS এমুলেটরে আপনার বিদ্যমান অ্যাপ পরীক্ষা করুন
Android Automotive OS-এর জন্য আপনার অ্যাপ তৈরি করা শুরু করতে, প্রথমে একটি Android Automotive OS এমুলেটরে আপনার বিদ্যমান অ্যাপটি পরীক্ষা করুন। একটি এমুলেটর সেট আপ করতে, Android Automotive OS এমুলেটর ব্যবহার করে টেস্টের ধাপগুলি অনুসরণ করুন৷ তারপরে আপনি এমুলেটরে আপনার অ্যাপ চালাতে নির্দেশাবলী অনুসরণ করে অ্যাপটি চালাতে পারেন।
আপনার অ্যাপ চালানোর সময়, সামঞ্জস্যপূর্ণ সমস্যাগুলির জন্য দেখুন, যেমন নিম্নলিখিত:
- ইনফোটেইনমেন্ট স্ক্রীনের স্থির অভিযোজন আছে। গাড়ির অ্যাপের গুণমানের নির্দেশিকা পূরণ করতে, অ্যাপগুলিকে অবশ্যই পোর্ট্রেট এবং ল্যান্ডস্কেপ অভিযোজন উভয় সমর্থন করতে হবে।
- অন্যান্য ডিভাইসে উপলব্ধ APIগুলি Android Automotive OS এ উপলব্ধ নাও হতে পারে৷ উদাহরণস্বরূপ, কিছু Google Play পরিষেবা API Android Automotive OS এ উপলব্ধ নেই৷ এই সমস্যাগুলি কীভাবে পরিচালনা করবেন তার বিশদ বিবরণের জন্য বৈশিষ্ট্যগুলি নিষ্ক্রিয় করুন বিভাগটি দেখুন।
আপনার অ্যাপের ম্যানিফেস্ট ফাইল কনফিগার করুন
Android Automotive OS ডিভাইসগুলিকে টার্গেট করতে, আপনার অ্যাপে অবশ্যই নির্দিষ্ট কিছু ম্যানিফেস্ট এন্ট্রি থাকতে হবে৷ আপনি Android Automotive OS ডিভাইসে বিতরণ করার জন্য অপ্ট-ইন করার পরে, সামঞ্জস্যপূর্ণ অ্যাপগুলিকে একটি ম্যানুয়াল পর্যালোচনা প্রক্রিয়ার মাধ্যমে রাখা হয় যাতে সেগুলি গাড়িতে ব্যবহারের জন্য নিরাপদ কিনা তা নিশ্চিত করতে সহায়তা করে৷ আরও বিস্তারিত জানার জন্য গাড়িতে বিতরণ দেখুন।
প্রয়োজনীয় Android Automotive OS বৈশিষ্ট্য
একটি গাড়িতে প্লে স্টোরে তালিকাভুক্ত হতে, Android Automotive OS-এর জন্য তৈরি অ্যাপগুলিকে android.hardware.type.automotive
বৈশিষ্ট্যের জন্য AndroidManifest.xml
ফাইলে একটি <uses-feature>
উপাদান অন্তর্ভুক্ত করতে হবে:
<manifest ...> ... <!-- Depending on the track you choose to distribute your app, the android:required attribute can also be "false" or left unset. See Choose a track for Android Automotive OS. --> <uses-feature android:name="android.hardware.type.automotive" android:required="[true|false]" /> ... </manifest>
পূর্ববর্তী কোডের নমুনায় দেখানো উপাদান ছাড়াও, Android Automotive OS-এর জন্য নির্মিত অ্যাপগুলিকে অবশ্যই রুট <manifest>
উপাদানে নিম্নলিখিত <uses-feature>
উপাদানগুলি অন্তর্ভুক্ত করতে হবে:
<uses-feature
android:name="android.hardware.wifi"
android:required="false"/>
<uses-feature
android:name="android.hardware.screen.portrait"
android:required="false"/>
<uses-feature
android:name="android.hardware.screen.landscape"
android:required="false"/>
স্পষ্টভাবে এই বৈশিষ্ট্যগুলিকে অপ্রয়োজনীয় হিসাবে সেট করা নিশ্চিত করতে সাহায্য করে যে আপনার অ্যাপটি Android Automotive OS ডিভাইসে উপলব্ধ হার্ডওয়্যার বৈশিষ্ট্যগুলির সাথে বিরোধ করছে না ৷
কোন বিভ্রান্তি-অপ্টিমাইজ করা কার্যকলাপ আছে নিশ্চিত করুন
আপনার অ্যাপটি পার্ক করার সময় শুধুমাত্র ব্যবহারের জন্য উপলব্ধ রয়েছে তা নিশ্চিত করতে, আপনার ম্যানিফেস্টের মধ্যে যেকোনও <activity>
উপাদানে নিম্নলিখিত <meta-data>
উপাদানটি অন্তর্ভুক্ত করবেন না :
<!-- NOT ALLOWED -->
<meta-data
android:name="distractionOptimized"
android:value="true"/>
এই মেটাডেটা ব্যতীত, আপনার অ্যাপের ক্রিয়াকলাপগুলি OS দ্বারা স্বয়ংক্রিয়ভাবে অবরুদ্ধ হয়ে যায় যখন গাড়িটি ড্রাইভিং মোডে প্রবেশ করে, যাতে ড্রাইভারের বিভ্রান্তি কম হয়৷ এটি একটি onPause
লাইফসাইকেল কলব্যাক হিসাবে ঘটে, যার সময় আপনাকে অবশ্যই আপনার অ্যাপ থেকে ভিডিও এবং অডিও প্লেব্যাক উভয়ই বিরতি দিতে হবে।
বিভাগ-নির্দিষ্ট ম্যানিফেস্ট এন্ট্রি
পূর্ববর্তী প্রয়োজনীয়তাগুলি ছাড়াও, যা সমস্ত পার্ক করা অ্যাপে প্রযোজ্য, ভিডিও এবং গেমের বিভাগগুলির অতিরিক্ত প্রয়োজনীয়তা রয়েছে:
- ভিডিও অ্যাপের জন্য, আপনার অ্যাপটিকে একটি ভিডিও অ্যাপ হিসেবে চিহ্নিত করুন দেখুন।
- গেমগুলির জন্য, আপনার অ্যাপটিকে একটি গেম হিসাবে চিহ্নিত করুন দেখুন৷
Android Automotive OS এর জন্য আপনার অ্যাপটি অপ্টিমাইজ করুন
আপনার ব্যবহারকারীদের সম্ভাব্য সর্বোত্তম অভিজ্ঞতা দিতে, Android Automotive OS-এর জন্য আপনার অ্যাপ তৈরি করার সময় নিম্নলিখিত বিষয়গুলি মাথায় রাখুন৷
বড় পর্দার জন্য অপ্টিমাইজ করুন
অ্যান্ড্রয়েড অটোমোটিভ ওএস গাড়িতে উপস্থিত স্ক্রিনগুলি ফোনের তুলনায় ট্যাবলেট এবং ফোল্ডেবলের আকার, রেজোলিউশন এবং আকৃতির অনুপাতের সাথে অনেক বেশি মিল। যেমন, বড় স্ক্রিনের জন্য আপনার অ্যাপটি অপ্টিমাইজ করা গাড়িতে থাকা আপনার ব্যবহারকারীদেরও উপকার করে।
বিশেষ করে, ডিজাইনের অনুপ্রেরণা এবং নির্দেশনার জন্য সর্বাধিক বড় ডিসপ্লে মাপের বিস্তারিত বিবরণের জন্য বিভিন্ন ডিসপ্লে মাপের সমর্থন দেখুন, সেইসাথে মিডিয়া এবং গেম গ্যালারীগুলি।
অন্যান্য বড় স্ক্রীন অপ্টিমাইজেশান যেমন ইনপুট সামঞ্জস্যতা Android Automotive OS এর জন্য সরাসরি উপকারী নয়, তবে তারা এখনও ব্যবহারকারীর অভিজ্ঞতা উন্নত করতে পারে। উদাহরণস্বরূপ, কীবোর্ড নেভিগেশন ঘূর্ণমান নেভিগেশন হিসাবে একই API ব্যবহার করে, তাই সেখানে করা যেকোনো অপ্টিমাইজেশন উভয় ফর্ম ফ্যাক্টরকে উপকৃত করতে পারে।
উইন্ডো ইনসেট এবং প্রদর্শন কাটআউটগুলির সাথে কাজ করুন
অন্যান্য ফর্ম ফ্যাক্টরগুলির মতো, Android Automotive OS-এ সিস্টেম UI উপাদানগুলি অন্তর্ভুক্ত রয়েছে, যেমন স্ট্যাটাস এবং নেভিগেশন বার এবং অ-আয়তাকার প্রদর্শনের জন্য সমর্থন।
ডিফল্টরূপে, অ্যাপগুলি এমন একটি এলাকায় আঁকে যা সিস্টেম বার বা ডিসপ্লে কাটআউটগুলির সাথে ওভারল্যাপ করে না। যাইহোক, আপনি আপনার অ্যাপটি সিস্টেম বারগুলি লুকিয়ে রাখতে, তাদের পিছনে সামগ্রী আঁকতে বা উইন্ডো ইনসেটের মধ্যে আপনার অ্যাপ লে আউটে বর্ণিত ডিসপ্লে কাটআউটে সামগ্রী দেখাতে চাইতে পারেন। যদি আপনার অ্যাপ এগুলির কোনোটি করে থাকে, তাহলে Android Automotive OS ডিভাইসের ইকোসিস্টেম জুড়ে কীভাবে আপনার অ্যাপটিকে ভালভাবে কাজ করতে দেওয়া যায় তার বিশদ বিবরণের জন্য নিম্নলিখিত উপবিভাগগুলি পড়ুন।
সিস্টেম বার, ইমারসিভ মোড এবং এজ-টু-এজ রেন্ডারিং
গাড়ির সিস্টেম বারগুলি অন্যান্য ফর্মের কারণগুলির তুলনায় আলাদাভাবে আকার এবং অবস্থান করা যেতে পারে। উদাহরণস্বরূপ, নেভিগেশন বারগুলি স্ক্রিনের বাম, ডান বা নীচে অবস্থিত হতে পারে। এমনকি যে ক্ষেত্রে উপরে একটি স্ট্যাটাস বার এবং নীচে একটি নেভিগেশন বার রয়েছে (যেমনটি বেশিরভাগ ফোন এবং ট্যাবলেটের ক্ষেত্রে), এই উপাদানগুলির আকার সম্ভবত গাড়িতে অনেক বেশি হবে।
উপরন্তু, Android Automotive OS ইমারসিভ মোডে প্রবেশ এবং প্রস্থান করার জন্য অ্যাপগুলি সিস্টেম বারগুলি দেখাতে বা লুকিয়ে রাখতে পারে কিনা তা নিয়ন্ত্রণ করতে OEM-কে অনুমতি দেয়৷ উদাহরণ স্বরূপ, অ্যাপগুলিকে সিস্টেম বার লুকিয়ে রাখতে বাধা দিয়ে, OEMগুলি নিশ্চিত করতে পারে যে যানবাহন নিয়ন্ত্রণগুলি, যেমন জলবায়ু নিয়ন্ত্রণগুলি, সর্বদা স্ক্রিনে অ্যাক্সেসযোগ্য৷ যদি কোনও OEM অ্যাপগুলিকে সিস্টেম বারগুলি নিয়ন্ত্রণ করতে বাধা দেয় তবে কোনও অ্যাপ যখন সিস্টেম বারগুলি দেখাতে বা লুকানোর জন্য WindowInsetsController
(বা WindowInsetsControllerCompat
) API-কে কল করে তখন কিছুই ঘটে না৷ আপনার অ্যাপ ইনসেটগুলি সংশোধন করতে সক্ষম হয়েছে কিনা তা কীভাবে সনাক্ত করা যায় সে সম্পর্কে আরও জানতে show
এবং hide
ডকুমেন্টেশন পড়ুন।
একইভাবে, OEM গুলি নিয়ন্ত্রণ করতে পারে যে অ্যাপগুলি সিস্টেম বারগুলির রঙ এবং স্বচ্ছতা সেট করতে পারে কিনা তা নিশ্চিত করতে যে বার এবং তাদের মধ্যে থাকা উপাদানগুলি সর্বদা স্পষ্টভাবে দৃশ্যমান হয়। যদি আপনার অ্যাপ এজ-টু-এজ ড্র করে, তবে পরীক্ষা করুন যে শুধুমাত্র অ-সমালোচনামূলক সামগ্রী সিস্টেম বারের পিছনে আঁকা হয়েছে। ডিভাইস OEM যদি বারগুলির রঙ বা স্বচ্ছতা সেট করতে বাধা দেয় তবে এই সামগ্রীটি দৃশ্যমান নাও হতে পারে৷
<!-- Depending on OEM configuration, these style declarations
(and the corresponding runtime calls) may be ignored -->
<style name="...">
<item name="android:statusBarColor">...</item>
<item name="android:navigationBarColor">...</item>
<item name="android:windowTranslucentStatus">...</item>
<item name="android:windowTranslucentNavigation">...</status>
</style>
যদি আপনার অ্যাপ এজ-টু-এজ যায়, তাহলে সিস্টেম বারের আকার, সংখ্যা, ধরন বা অবস্থান সম্পর্কে অনুমান করবেন না। পরিবর্তে, সিস্টেম বারের সাপেক্ষে আপনার অ্যাপের বিষয়বস্তু সাজাতে উইন্ডো ইনসেট API ব্যবহার করুন। এই APIগুলি কীভাবে ব্যবহার করবেন সে সম্পর্কে আরও বিশদ বিবরণের জন্য আপনার অ্যাপে এজ-টু-এজ প্রদর্শন সামগ্রী দেখুন। হার্ড কোডেড প্যাডিং মানগুলি, যা কখনই সুপারিশ করা হয় না, অন্যান্য ডিভাইসে সামগ্রীকে নিরাপদ জায়গায় রাখতে পারে, সম্ভবত গাড়িতে থাকবে না৷
অনিয়মিত আকারের ডিসপ্লেতে মানিয়ে নিন
আয়তক্ষেত্রাকার ডিসপ্লে ছাড়াও, কিছু গাড়ির অনিয়মিত আকারের স্ক্রিন থাকতে পারে, যেমন চিত্র 1 এ দেখানো হয়েছে:
যদি আপনার অ্যাপ এজ-টু-এজ রেন্ডার না করে, তাহলে নিরাপদ এলাকার মধ্যে রেন্ডার করার জন্য আপনাকে কিছু করতে হবে না।
যদি আপনার অ্যাপ এজ-টু-এজ রেন্ডার করে, তাহলে কাটআউট প্রদর্শনের ক্ষেত্রে আপনি কীভাবে আচরণ করতে চান তা বেছে নিতে পারেন। আপনি আপনার অ্যাপের থিমের জন্য android:windowLayoutInDisplayCutoutMode
অ্যাট্রিবিউট সেট করে বা উইন্ডোর layoutInDisplayCutoutMode
অ্যাট্রিবিউট পরিবর্তন করে রানটাইমে রিসোর্স ব্যবহার করে এটি সম্পন্ন করতে পারেন।
যেহেতু Android Automotive OS ডিভাইসগুলিতে উপস্থিত ডিসপ্লে কাটআউটগুলির ধরনগুলি মোবাইল ডিভাইসগুলির থেকে আলাদা, তাই LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT
বা LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES
ব্যবহার করবেন না, যেগুলি মোবাইল ডিভাইসগুলিতে পাওয়া কাটআউটগুলির জন্য অপ্টিমাইজ করা আচরণ রয়েছে৷ পরিবর্তে, সর্বদা এড়াতে বা সর্বদা কাটআউট প্রবেশ করতে LAYOUT_IN_DISPLAY_CUTOUT_MODE_NEVER
বা LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS
ব্যবহার করুন। পরবর্তীটি বেছে নেওয়ার সময়, প্রদর্শন কাটআউটগুলির সাথে সম্পর্কিত APIগুলির আরও বিশদ বিবরণের জন্য সমর্থন প্রদর্শন কাটআউটগুলি দেখুন৷
যদি আপনার অ্যাপটি ডিসপ্লে কাটআউট এলাকায় রেন্ডার করে এবং আপনি অ্যান্ড্রয়েড অটোমোটিভ ওএস এবং মোবাইলের মধ্যে ভিন্ন আচরণ করতে চান, তাহলে নির্দেশনার জন্য বৈশিষ্ট্যগুলি অক্ষম করুন দেখুন যদি আপনার অ্যাপ রানটাইমে এই আচরণটি সেট করে এবং যদি আপনার অ্যাপ সম্পদ ব্যবহার করে এই আচরণ সেট করে তাহলে বিকল্প সংস্থান ব্যবহার করুন ফাইল
বৈশিষ্ট্যগুলি অক্ষম করুন
আপনি যদি Android Automotive OS-এ একটি বিদ্যমান মোবাইল অ্যাপ উপলব্ধ করে থাকেন, তাহলে কিছু বৈশিষ্ট্য এবং কার্যকারিতা প্রাসঙ্গিক বা উপলব্ধ নাও হতে পারে। উদাহরণস্বরূপ, গাড়িগুলি সাধারণত ক্যামেরাগুলিতে অ্যাক্সেস সরবরাহ করে না। অতিরিক্তভাবে, Android Automotive OS-তে Google Play পরিষেবাগুলির শুধুমাত্র একটি উপসেট উপলব্ধ; আরো বিস্তারিত জানার জন্য গাড়ির জন্য Google Play পরিষেবা দেখুন।
আপনি নিম্নলিখিত উদাহরণে দেখানো FEATURE_AUTOMOTIVE
বৈশিষ্ট্যটি পরীক্ষা করে অ্যাপ্লিকেশানটি Android Automotive OS-এ চলছে কিনা তা সনাক্ত করতে PackageManager.hasSystemFeature
API ব্যবহার করতে পারেন:
কোটলিন
val packageManager: PackageManager = ... // Get a PackageManager from a Context val isCar = packageManager.hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE) if (isCar) { // Enable or disable a given feature }
জাভা
PackageManager packageManager = ... // Get a PackageManager from a Context boolean isCar = packageManager.hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE) if (isCar) { // Enable or disable a given feature }
বিকল্পভাবে, যদি আপনার অ্যাপের একটি Android Auto উপাদানও থাকে, তাহলে অ্যাপটি Android Automotive OS বা Android Auto-এ চলছে কিনা তা শনাক্ত করতে আপনি Android for Cars অ্যাপ লাইব্রেরি থেকে CarConnection API ব্যবহার করতে পারেন—অথবা এটি কোনও গাড়ির সাথে সংযুক্ত না থাকলে সব
Picture-in-Picture (PiP) এর জন্য, বৈশিষ্ট্যটি উপলব্ধ কিনা এবং যথাযথভাবে প্রতিক্রিয়া জানাতে প্রতিষ্ঠিত সেরা অনুশীলনগুলি অনুসরণ করুন।
অফলাইন পরিস্থিতি পরিচালনা করুন
যখন গাড়িগুলি ক্রমবর্ধমান ইন্টারনেট সংযুক্ত হচ্ছে, অ্যাপগুলিকে ইন্টারনেট সংযোগ ছাড়াই চালানোর জন্য সুপারিশ করা হয়, যেমন নিম্নলিখিত ক্ষেত্রে:
- ব্যবহারকারীরা অটো মেকার থেকে সাবস্ক্রিপশন প্যাকেজের অংশ হিসাবে অফার করা মোবাইল ডেটা অপ্ট আউট করতে পারে৷
- মোবাইল ডেটার অ্যাক্সেস নির্দিষ্ট এলাকায় সীমিত হতে পারে।
- ওয়াই-ফাই রেডিও সহ গাড়িগুলি ওয়াই-ফাই সীমার বাইরে হতে পারে, বা একটি OEM মোবাইল নেটওয়ার্কের পক্ষে ওয়াই-ফাই বন্ধ করতে পারে৷
অফলাইন বিষয়বস্তু অফার করার মতো ইন্টারনেট অ্যাক্সেসের উপর নির্ভর করে এমন কার্যকারিতাকে সুন্দরভাবে অবনমিত করে আপনার অ্যাপে এই পরিস্থিতিগুলি পরিচালনা করার জন্য প্রস্তুত থাকুন। আরও তথ্যের জন্য, নেটওয়ার্কিং অপ্টিমাইজ করার জন্য সেরা অনুশীলনগুলি দেখুন৷
বিকল্প সম্পদ ব্যবহার করুন
আপনার অ্যাপটিকে গাড়ির জন্য মানিয়ে নিতে সাহায্য করতে, আপনি Android Automotive OS গাড়িতে চলাকালীন বিকল্প সংস্থান প্রদান করতে car
রিসোর্স কোয়ালিফায়ার ব্যবহার করতে পারেন। উদাহরণস্বরূপ, যদি আপনি প্যাডিং মান সঞ্চয় করার জন্য মাত্রা সংস্থান ব্যবহার করেন, তাহলে স্পর্শ লক্ষ্যগুলিকে আরও বড় করতে আপনি car
সংস্থান সেটের জন্য একটি বড় মান ব্যবহার করতে পারেন।
আপনার অ্যাপ্লিকেশন বিতরণ
আপনি গাড়ির অ্যাপের মানের নির্দেশিকা অনুযায়ী আপনার অ্যাপটি পরীক্ষা করার পরে আপনি Google বিল্ট-ইন সহ কারগুলিতে বিতরণ করতে Google Play ব্যবহার করতে পারেন। প্রকাশনার প্রক্রিয়া সম্পর্কে আরও বিস্তারিত জানার জন্য গাড়িতে বিতরণ দেখুন।
পার্ক করা অ্যাপস সম্পর্কে মতামত দিন
অ্যান্ড্রয়েড অটোমোটিভ ওএসের জন্য পার্ক করা অ্যাপ ডেভেলপ করার সময় আপনার যদি কোনো সমস্যা হয় বা কোনো বৈশিষ্ট্যের অনুরোধ থাকে, আপনি Google Issue Tracker ব্যবহার করে রিপোর্ট করতে পারেন। ইস্যু টেমপ্লেটে অনুরোধ করা সমস্ত তথ্য পূরণ করতে ভুলবেন না। একটি নতুন সমস্যা ফাইল করার আগে, এটি ইতিমধ্যেই সমস্যা তালিকায় রিপোর্ট করা আছে কিনা তা পরীক্ষা করে দেখুন। আপনি সাবস্ক্রাইব করতে পারেন এবং ট্র্যাকারে একটি সমস্যার জন্য তারকা ক্লিক করে সমস্যার জন্য ভোট দিতে পারেন। আরও তথ্যের জন্য, একটি ইস্যুতে সদস্যতা নেওয়া দেখুন।