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-এর জন্য আপনার অ্যাপ তৈরি করার সময় নিম্নলিখিত বিষয়গুলি মাথায় রাখুন৷

বড় পর্দার জন্য অপ্টিমাইজ করুন

অ্যান্ড্রয়েড অটোমোটিভ ওএস গাড়িতে উপস্থিত স্ক্রিনগুলি ফোনের তুলনায় ট্যাবলেট এবং ফোল্ডেবলের আকার, রেজোলিউশন এবং আকৃতির অনুপাতের সাথে অনেক বেশি মিল। যেমন, বড় স্ক্রিনের জন্য আপনার অ্যাপটি অপ্টিমাইজ করা গাড়িতে থাকা আপনার ব্যবহারকারীদেরও উপকার করে।

বিশেষ করে, বিভিন্ন স্ক্রীনের মাপ সমর্থন দেখুন এবং বৃহত্তর ডিসপ্লে মাপ, সেইসাথে ডিজাইনের অনুপ্রেরণা এবং নির্দেশনার জন্য মিডিয়া এবং গেম গ্যালারীগুলি তৈরির বিশদ বিবরণের জন্য প্রতিক্রিয়াশীল লেআউট গাইডগুলিতে আপনার UI স্থানান্তর করুন

অন্যান্য বড় স্ক্রীন অপ্টিমাইজেশান যেমন ইনপুট সামঞ্জস্যতা 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 Automotive OS ডিভাইসের একটি চিত্র       ডান দিকে বাঁকা।
চিত্র 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-এর জন্য আপনার অ্যাপ তৈরি করার সময় নিম্নলিখিত বিষয়গুলি মাথায় রাখুন৷

বড় পর্দার জন্য অপ্টিমাইজ করুন

অ্যান্ড্রয়েড অটোমোটিভ ওএস গাড়িতে উপস্থিত স্ক্রিনগুলি ফোনের তুলনায় ট্যাবলেট এবং ফোল্ডেবলের আকার, রেজোলিউশন এবং আকৃতির অনুপাতের সাথে অনেক বেশি মিল। যেমন, বড় স্ক্রিনের জন্য আপনার অ্যাপটি অপ্টিমাইজ করা গাড়িতে থাকা আপনার ব্যবহারকারীদেরও উপকার করে।

বিশেষ করে, বিভিন্ন স্ক্রীনের মাপ সমর্থন দেখুন এবং বৃহত্তর ডিসপ্লে মাপ, সেইসাথে ডিজাইনের অনুপ্রেরণা এবং নির্দেশনার জন্য মিডিয়া এবং গেম গ্যালারীগুলি তৈরির বিশদ বিবরণের জন্য প্রতিক্রিয়াশীল লেআউট গাইডগুলিতে আপনার UI স্থানান্তর করুন

অন্যান্য বড় স্ক্রীন অপ্টিমাইজেশান যেমন ইনপুট সামঞ্জস্যতা 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 Automotive OS ডিভাইসের একটি চিত্র       ডান দিকে বাঁকা।
চিত্র 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-এর জন্য আপনার অ্যাপ তৈরি করার সময় নিম্নলিখিত বিষয়গুলি মাথায় রাখুন৷

বড় পর্দার জন্য অপ্টিমাইজ করুন

অ্যান্ড্রয়েড অটোমোটিভ ওএস গাড়িতে উপস্থিত স্ক্রিনগুলি ফোনের তুলনায় ট্যাবলেট এবং ফোল্ডেবলের আকার, রেজোলিউশন এবং আকৃতির অনুপাতের সাথে অনেক বেশি মিল। যেমন, বড় স্ক্রিনের জন্য আপনার অ্যাপটি অপ্টিমাইজ করা গাড়িতে থাকা আপনার ব্যবহারকারীদেরও উপকার করে।

বিশেষ করে, বিভিন্ন স্ক্রীনের মাপ সমর্থন দেখুন এবং বৃহত্তর ডিসপ্লে মাপ, সেইসাথে ডিজাইনের অনুপ্রেরণা এবং নির্দেশনার জন্য মিডিয়া এবং গেম গ্যালারীগুলি তৈরির বিশদ বিবরণের জন্য প্রতিক্রিয়াশীল লেআউট গাইডগুলিতে আপনার UI স্থানান্তর করুন

অন্যান্য বড় স্ক্রীন অপ্টিমাইজেশান যেমন ইনপুট সামঞ্জস্যতা Android Automotive OS এর জন্য সরাসরি উপকারী নয়, তবে তারা এখনও ব্যবহারকারীর অভিজ্ঞতা উন্নত করতে পারে। উদাহরণস্বরূপ, কীবোর্ড নেভিগেশন ঘূর্ণমান নেভিগেশন হিসাবে একই API ব্যবহার করে, তাই সেখানে করা যেকোনো অপ্টিমাইজেশন উভয় ফর্ম ফ্যাক্টরকে উপকৃত করতে পারে।

উইন্ডো ইনসেট এবং প্রদর্শন কাটআউটগুলির সাথে কাজ করুন

অন্যান্য ফর্ম ফ্যাক্টরগুলির মতো, Android Automotive OS-এ সিস্টেম UI উপাদানগুলি অন্তর্ভুক্ত রয়েছে, যেমন স্ট্যাটাস এবং নেভিগেশন বার এবং অ-আয়তাকার প্রদর্শনের জন্য সমর্থন।

ডিফল্টরূপে, অ্যাপগুলি এমন একটি এলাকায় আঁকে যা সিস্টেম বার বা ডিসপ্লে কাটআউটগুলির সাথে ওভারল্যাপ করে না। যাইহোক, আপনি আপনার অ্যাপটি সিস্টেম বারগুলি লুকিয়ে রাখতে, তাদের পিছনে সামগ্রী আঁকতে বা উইন্ডো ইনসেটের মধ্যে আপনার অ্যাপ লে আউটে বর্ণিত ডিসপ্লে কাটআউটে সামগ্রী দেখাতে চাইতে পারেন। যদি আপনার অ্যাপ এগুলির কোনোটি করে থাকে, তাহলে Android Automotive OS ডিভাইসের ইকোসিস্টেম জুড়ে কীভাবে আপনার অ্যাপটিকে ভালভাবে কাজ করতে দেওয়া যায় তার বিশদ বিবরণের জন্য নিম্নলিখিত উপবিভাগগুলি পড়ুন।

সিস্টেম বার, ইমারসিভ মোড এবং এজ-টু-এজ রেন্ডারিং

গাড়ির সিস্টেম বারগুলি অন্যান্য ফর্মের কারণগুলির তুলনায় আলাদাভাবে আকার এবং অবস্থান করা যেতে পারে। উদাহরণস্বরূপ, নেভিগেশন বারগুলি স্ক্রিনের বাম, ডান বা নীচে অবস্থিত হতে পারে। এমনকি যে ক্ষেত্রে উপরে একটি স্ট্যাটাস বার এবং নীচে একটি নেভিগেশন বার রয়েছে (যেমনটি বেশিরভাগ ফোন এবং ট্যাবলেটের ক্ষেত্রে), এই উপাদানগুলির আকার সম্ভবত গাড়িতে অনেক বেশি হবে।

উপরন্তু, Android Automotive OS ইমারসিভ মোডে প্রবেশ এবং প্রস্থান করার জন্য অ্যাপগুলি সিস্টেম বারগুলি দেখাতে বা লুকিয়ে রাখতে পারে কিনা তা নিয়ন্ত্রণ করতে OEM-কে অনুমতি দেয়৷ উদাহরণ স্বরূপ, অ্যাপগুলিকে সিস্টেম বার লুকিয়ে রাখতে বাধা দিয়ে, OEMগুলি নিশ্চিত করতে পারে যে যানবাহন নিয়ন্ত্রণগুলি, যেমন জলবায়ু নিয়ন্ত্রণগুলি, সর্বদা স্ক্রিনে অ্যাক্সেসযোগ্য৷ যদি কোনও OEM অ্যাপ্লিকেশনগুলিকে সিস্টেম বারগুলি নিয়ন্ত্রণ করতে বাধা দেয় তবে সিস্টেম বারগুলি দেখাতে বা আড়াল করার জন্য কোনও অ্যাপ WindowInsetsController (বা WindowInsetsControllerCompat ) এপিআইগুলিকে কল করার সময় কিছুই হয় না। আপনার অ্যাপ্লিকেশনটি ইনসেটগুলি সংশোধন করতে সক্ষম হয়েছে কিনা সে সম্পর্কে কীভাবে সনাক্ত করা যায় সে সম্পর্কে আরও জানতে show ডকুমেন্টেশনগুলি দেখুন এবং hide

তেমনি, ওএমএসগুলিও নিয়ন্ত্রণ করতে পারে যে অ্যাপ্লিকেশনগুলি সিস্টেম বারগুলির রঙ এবং স্বচ্ছতা সেট করতে পারে কিনা তা নিশ্চিত করতে পারে যে সেগুলির মধ্যে থাকা বারগুলি এবং উপাদানগুলি সর্বদা স্পষ্টভাবে দৃশ্যমান রয়েছে তা নিশ্চিত করতে। যদি আপনার অ্যাপ্লিকেশনটি প্রান্ত থেকে প্রান্তটি আঁকায় তবে পরীক্ষা করুন যে কেবল অ-সমালোচনামূলক সামগ্রী সিস্টেম বারের পিছনে আঁকা। ডিভাইস 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>

যদি আপনার অ্যাপ্লিকেশনটি প্রান্তে চলে যায় তবে সিস্টেম বারের আকার, সংখ্যা, প্রকার বা অবস্থান সম্পর্কে অনুমান করবেন না। পরিবর্তে, সিস্টেম বারের সাথে সম্পর্কিত আপনার অ্যাপের সামগ্রীটি তৈরি করতে উইন্ডো ইনসেটস এপিআই ব্যবহার করুন। এই এপিআইগুলি কীভাবে ব্যবহার করবেন সে সম্পর্কে আরও তথ্যের জন্য আপনার অ্যাপ্লিকেশনটিতে সামগ্রী প্রান্ত থেকে প্রান্তটি দেখুন। হার্ড কোডেড প্যাডিং মানগুলি যা কখনই সুপারিশ না করে, অন্য ডিভাইসে নিরাপদ অঞ্চলে সামগ্রী রাখতে পারে সম্ভবত গাড়িতে না।

অনিয়মিত আকারের প্রদর্শনগুলিতে মানিয়ে নিন

আয়তক্ষেত্রাকার প্রদর্শন ছাড়াও, কিছু যানবাহনের অনিয়মিত আকারের স্ক্রিন থাকতে পারে যেমন চিত্র 1 এ দেখানো হয়েছে:

একটি ডিসপ্লে সহ একটি অ্যান্ড্রয়েড অটোমোটিভ ওএস ডিভাইসের একটি চিত্র       ডানদিকে বাঁকা।
চিত্র 1 : ডানদিকে বাঁকানো একটি ডিসপ্লে সহ একটি অ্যান্ড্রয়েড স্বয়ংচালিত ওএস ডিভাইস। সবুজ অঞ্চলটি নিরাপদ আয়তক্ষেত্র যা কার্ভের ডিসপ্লে কাটআউটের সীমানা বাক্সের সাথে ওভারল্যাপ করে না।

যদি আপনার অ্যাপ্লিকেশনটি প্রান্ত থেকে প্রান্তে রেন্ডার না করে তবে নিরাপদ অঞ্চলের মধ্যে রেন্ডার করার জন্য আপনার এটির জন্য কিছু করার দরকার নেই।

যদি আপনার অ্যাপ্লিকেশনটি প্রান্ত থেকে প্রান্তকে উপস্থাপন করে তবে আপনি কীভাবে এটি কাটআউটগুলি প্রদর্শন করার ক্ষেত্রে আচরণ করতে চান তা চয়ন করতে পারেন। আপনি android:windowLayoutInDisplayCutoutMode অ্যাট্রিবিউটটি সংশোধন করে আপনার অ্যাপের থিমের জন্য বা রানটাইমে রানটাইম এ উইন্ডোওয়েআউটআইডিসপ্লে layoutInDisplayCutoutMode অ্যাট্রিবিউট।

যেহেতু অ্যান্ড্রয়েড অটোমোটিভ ওএস ডিভাইসগুলিতে উপস্থিত ডিসপ্লে কাটআউটগুলির ধরণগুলি মোবাইল ডিভাইসের তুলনায় আলাদা, তাই 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 ব্যবহার করুন। দ্বিতীয়টি বেছে নেওয়ার সময়, ডিসপ্লে কাটআউটগুলির সাথে সম্পর্কিত এপিআইগুলিতে আরও তথ্যের জন্য সমর্থন প্রদর্শন কাটআউটগুলি দেখুন।

যদি আপনার অ্যাপ্লিকেশনটি ডিসপ্লে কাটআউট অঞ্চলে রেন্ডার করে এবং আপনি অ্যান্ড্রয়েড অটোমোটিভ ওএস এবং মোবাইলের মধ্যে বিভিন্ন আচরণ করতে চান, যদি আপনার অ্যাপ্লিকেশনটি রানটাইমে এই আচরণটি সেট করে এবং বিকল্প সংস্থানগুলি ব্যবহার করে যদি আপনার অ্যাপ্লিকেশনটি সংস্থান ব্যবহার করে এই আচরণটি সেট করে তবে বিকল্প সংস্থানগুলি ব্যবহার করে তবে গাইডেন্সের জন্য অক্ষম বৈশিষ্ট্যগুলি দেখুন ফাইল

বৈশিষ্ট্যগুলি অক্ষম করুন

আপনি যদি অ্যান্ড্রয়েড অটোমোটিভ ওএসে একটি বিদ্যমান মোবাইল অ্যাপ উপলব্ধ করে থাকেন তবে নির্দিষ্ট বৈশিষ্ট্য এবং কার্যকারিতা প্রাসঙ্গিক বা উপলভ্য নাও হতে পারে। উদাহরণস্বরূপ, গাড়িগুলি সাধারণত ক্যামেরাগুলিতে অ্যাক্সেস সরবরাহ করে না। অতিরিক্তভাবে, অ্যান্ড্রয়েড অটোমোটিভ ওএসে কেবল গুগল প্লে পরিষেবাদির একটি উপসেট উপলব্ধ; আরও তথ্যের জন্য গাড়ির জন্য গুগল প্লে পরিষেবাগুলি দেখুন।

আপনি PackageManager.hasSystemFeature এপিআই ব্যবহার করতে পারেন অ্যাপ্লিকেশনটি অ্যান্ড্রয়েড অটোমোটিভ ওএসে FEATURE_AUTOMOTIVE বৈশিষ্ট্যটি যাচাই করে চলছে কিনা তা সনাক্ত করতে, নিম্নলিখিত উদাহরণে দেখানো হয়েছে:

কোটলিন

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
}

বিকল্পভাবে, যদি আপনার অ্যাপ্লিকেশনটিতে একটি অ্যান্ড্রয়েড অটো উপাদানও থাকে তবে আপনি অ্যাপটি অ্যান্ড্রয়েড অটোমোটিভ ওএস বা অ্যান্ড্রয়েড অটোতে চলমান কিনা তা সনাক্ত করতে অ্যান্ড্রয়েডের জন্য অ্যান্ড্রয়েডের জন্য কারকনেকশন এপিআই ব্যবহার করতে পারেন - বা যদি এটি কোনও গাড়ির সাথে সংযুক্ত না থাকে তবে যদি এটি কোনও গাড়ির সাথে সংযুক্ত না থাকে সব

চিত্র-ইন-পিকচার (পিআইপি) এর জন্য, বৈশিষ্ট্যটি উপলব্ধ কিনা তা পরীক্ষা করার জন্য প্রতিষ্ঠিত সেরা অনুশীলনগুলি অনুসরণ করুন এবং যথাযথভাবে প্রতিক্রিয়া জানান।

অফলাইন পরিস্থিতি হ্যান্ডেল করুন

গাড়িগুলি ক্রমবর্ধমান ইন্টারনেট সংযুক্ত হয়ে উঠলে, অ্যাপ্লিকেশনগুলিকে ইন্টারনেট সংযোগ ছাড়াই চলমান পরিচালনা করার পরামর্শ দেওয়া হয় যেমন নিম্নলিখিত ক্ষেত্রে:

  • ব্যবহারকারীরা অটো প্রস্তুতকারকের সাবস্ক্রিপশন প্যাকেজের অংশ হিসাবে দেওয়া মোবাইল ডেটা বেছে নিতে পারেন।
  • মোবাইল ডেটাতে অ্যাক্সেস নির্দিষ্ট কিছু ক্ষেত্রে সীমাবদ্ধ হতে পারে।
  • ওয়াই-ফাই রেডিও সহ গাড়িগুলি ওয়াই-ফাই রেঞ্জের বাইরে থাকতে পারে, বা কোনও ওএম কোনও মোবাইল নেটওয়ার্কের পক্ষে ওয়াই-ফাই বন্ধ করতে পারে।

আপনার অ্যাপ্লিকেশনটিতে এই পরিস্থিতিগুলি পরিচালনা করার জন্য প্রস্তুত থাকুন যা ইন্টারনেট অ্যাক্সেসের উপর নির্ভর করে যেমন অফলাইন সামগ্রী সরবরাহ করে। আরও তথ্যের জন্য, নেটওয়ার্কিং অনুকূলকরণের জন্য সেরা অনুশীলনগুলি দেখুন।

বিকল্প সংস্থান ব্যবহার করুন

আপনার অ্যাপ্লিকেশনটিকে গাড়িগুলির জন্য মানিয়ে নিতে সহায়তা করতে, আপনি অ্যান্ড্রয়েড অটোমোটিভ ওএস যানবাহনে চলার সময় বিকল্প সংস্থান সরবরাহ করতে car রিসোর্স কোয়ালিফায়ার ব্যবহার করতে পারেন। উদাহরণস্বরূপ, আপনি যদি প্যাডিং মানগুলি সঞ্চয় করতে মাত্রা সংস্থানগুলি ব্যবহার করেন তবে স্পর্শ লক্ষ্যগুলি আরও বড় করার জন্য আপনি car সংস্থান সেটটির জন্য একটি বৃহত্তর মান ব্যবহার করতে পারেন।

আপনার অ্যাপ্লিকেশন বিতরণ

আপনি এর বিভাগের জন্য গাড়ী অ্যাপের মানের নির্দেশিকাগুলির বিরুদ্ধে আপনার অ্যাপ্লিকেশনটি পরীক্ষা করার পরে আপনি গুগল প্লে ব্যবহার করতে পারেন গুগল অন্তর্নির্মিত গাড়িগুলিতে বিতরণ করতে। প্রকাশনা প্রক্রিয়া সম্পর্কে আরও তথ্যের জন্য গাড়ি বিতরণ দেখুন।

পার্ক করা অ্যাপ্লিকেশনগুলিতে প্রতিক্রিয়া জানান

আপনি যদি কোনও ইস্যুতে চলে যান বা অ্যান্ড্রয়েড অটোমোটিভ ওএসের জন্য আপনার পার্কযুক্ত অ্যাপটি বিকাশের সময় কোনও বৈশিষ্ট্য অনুরোধ রাখেন তবে আপনি গুগল ইস্যু ট্র্যাকার ব্যবহার করে এটি প্রতিবেদন করতে পারেন। ইস্যু টেমপ্লেটে সমস্ত অনুরোধ করা তথ্য পূরণ করতে ভুলবেন না। কোনও নতুন সমস্যা দায়ের করার আগে, এটি ইতিমধ্যে ইস্যু তালিকায় রিপোর্ট করা হয়েছে কিনা তা পরীক্ষা করে দেখুন। আপনি ট্র্যাকারের কোনও সমস্যার জন্য স্টারে ক্লিক করে সাবস্ক্রাইব করতে এবং ইস্যুগুলির পক্ষে ভোট দিতে পারেন। আরও তথ্যের জন্য, কোনও ইস্যুতে সাবস্ক্রাইব করা দেখুন।

একটি নতুন সমস্যা তৈরি করুন