অ্যান্ড্রয়েড অটোমোটিভ ওএস ওভারভিউ

অ্যান্ড্রয়েড অটোমোটিভ ওএস ইউজার ইন্টারফেস
চিত্র ১ : অ্যান্ড্রয়েড অটোমোটিভ ওএস

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

অ্যান্ড্রয়েড অটোমোটিভ ওএস হার্ডওয়্যার সম্পর্কে জানুন

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

ডিসপ্লে কাটআউট

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

অডিও

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

অ্যান্ড্রয়েড অটোমোটিভ ওএস সফটওয়্যার বুঝুন

যদিও অ্যান্ড্রয়েড অটোমোটিভ ওএস অন্যান্য ফর্ম ফ্যাক্টরে ব্যবহৃত একই মূল অপারেটিং সিস্টেমের উপর ভিত্তি করে তৈরি, তবুও এর কিছু স্বতন্ত্র অতিরিক্ত বৈশিষ্ট্য রয়েছে যা অ্যাপ তৈরি এবং ব্যবহারের পদ্ধতিকে প্রভাবিত করতে পারে।

সিস্টেম UI

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

অন্যান্য ফর্ম ফ্যাক্টরের মতো, অ্যান্ড্রয়েড অটোমোটিভ ওএস ডিভাইসগুলির জন্য হার্ডওয়্যার বা সফ্টওয়্যার-ভিত্তিক অ্যাফোর্ডেন্স থাকা বাধ্যতামূলক নয়। কম্প্যাটিবিলিটি মোডে না চললে, AN-1 গুণমানের নির্দেশিকা পূরণের জন্য আপনার অ্যাপ দ্বারা বাস্তবায়িত অ্যাক্টিভিটিগুলিতে ইন-অ্যাপ নেভিগেশন সক্ষম করতে UI অ্যাফোর্ডেন্স অন্তর্ভুক্ত থাকা উচিত।

সিস্টেম বার লেআউট

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

এছাড়াও, মোবাইল ডিভাইসের ডিসপ্লে কাটআউটগুলো সাধারণত সিস্টেম বারের সীমার মধ্যেই থাকে, কিন্তু গাড়ির ক্ষেত্রে বিষয়টি তেমন নয়।

বিস্তারিত নির্দেশনার জন্য ‘উইন্ডো ইনসেট এবং ডিসপ্লে কাটআউট নিয়ে কাজ’ দেখুন।

ইমারসিভ মোড

অ্যান্ড্রয়েড অটোমোটিভ ওএস ওইএম-দেরকে (OEMs) এই নিয়ন্ত্রণ করার সুযোগ দেয় যে, অ্যাপগুলো ইমারসিভ মোডে প্রবেশ ও প্রস্থান করার জন্য সিস্টেম বার দেখাতে বা লুকাতে পারবে কি না। অ্যাপগুলোকে সিস্টেম বার লুকানো থেকে বিরত রাখার মাধ্যমে, ওইএম-রা নিশ্চিত করতে পারে যে গাড়ির কন্ট্রোলগুলো, যেমন ক্লাইমেট কন্ট্রোল, স্ক্রিনে সবসময় সহজলভ্য থাকবে।

ব্যবহারকারীর অভিজ্ঞতার সীমাবদ্ধতা

ইউজার এক্সপেরিয়েন্স (UX) রেস্ট্রিকশন হলো অ্যান্ড্রয়েড অটোমোটিভ ওএস-এ অন্তর্নির্মিত একটি সক্ষমতা, যা চালকের মনোযোগ বিঘ্নিত হওয়ার বিষয়টি সামাল দেয়। ইউএক্স রেস্ট্রিকশন স্বয়ংক্রিয়ভাবে এমন অ্যাপের ব্যবহার প্রতিরোধ করে, যেগুলো গাড়ি চালানোর সময় ব্যবহারের জন্য অপ্টিমাইজ করা হয়নি।

যে অ্যাপটিকে ‘বিক্ষেপ-প্রতিরোধী’ হিসেবে চিহ্নিত করা হয়নি, সেটির ওপর একটি কার্যকলাপ ব্লককারী কার্যকলাপ প্রদর্শিত হচ্ছে।
চিত্র ২ : ইউএক্স বিধিনিষেধের কারণে একটি অ্যাপ ব্লক হয়ে যাচ্ছে

ইউএক্স (UX) বিধিনিষেধগুলো কীভাবে এবং কখন সক্রিয় হবে, তা নির্ধারণকারী সুনির্দিষ্ট নিয়মাবলী যানবাহন প্রস্তুতকারক সংস্থাগুলো দ্বারা নির্ধারিত হয়। এই নিয়মগুলো ভৌগোলিক অবস্থানভেদে ভিন্ন হতে পারে – উদাহরণস্বরূপ, ইউরোপে বিক্রি হওয়া একই গাড়ির জন্য প্রযোজ্য নিয়ম মার্কিন যুক্তরাষ্ট্রে বিক্রি হওয়া গাড়ির নিয়ম থেকে ভিন্ন হতে পারে।

একটি গাড়ির ভেতরের ডিসপ্লে ভেদে ইউএক্স (UX) সীমাবদ্ধতার নিয়মও ভিন্ন হতে পারে। উদাহরণস্বরূপ, গাড়ি চলার সময় চালকের দৃষ্টিসীমার মধ্যে থাকা একটি সেন্ট্রাল ডিসপ্লে সীমাবদ্ধ করা সম্ভব, অথচ যাত্রীর দিকের ডিসপ্লেটি সীমাবদ্ধ নাও থাকতে পারে।

আপনার অ্যাপকে যদি ইউএক্স (UX) বিধিনিষেধের সাথে খাপ খাইয়ে নিতে হয়, তবে সেগুলোকে সরাসরি উল্লেখ করুন – সেগুলোর বাস্তবায়ন উল্টোভাবে বোঝার চেষ্টা করবেন না। উদাহরণস্বরূপ, আপনি যদি ধরে নেন যে গিয়ার 'পার্ক' অবস্থায় না থাকলেই ইউএক্স (UX) বিধিনিষেধগুলো সক্রিয় থাকে, তাহলে আপনি হয়তো অকারণে প্যাসেঞ্জার ডিসপ্লেতে চলা কোনো অ্যাপকে সীমাবদ্ধ করে ফেলবেন।

মনোযোগ বিচ্যুতি অপ্টিমাইজেশন

ডিফল্টরূপে, চালকের মনোযোগের বিচ্যুতি সীমিত করার জন্য ইউএক্স বিধিনিষেধ সক্রিয় থাকাকালীন কোনো অ্যাক্টিভিটি চালানো যায় না। যানবাহন চলমান থাকা অবস্থায় কোনো অ্যাক্টিভিটি চালু থাকবে, এটি সিস্টেমকে বোঝানোর জন্য সংশ্লিষ্ট <activity> এলিমেন্টের মধ্যে নিম্নলিখিত <meta-data> এলিমেন্টটি যোগ করা যেতে পারে।

<activity ...>
  <meta-data android:name="distractionOptimized" android:value="true">
</activity>

অ্যান্ড্রয়েড অটোমোটিভ ওএস-এর জন্য অ্যাপ তৈরি করার সময়, আপনার ম্যানিফেস্টে এই মেটাডেটা শুধুমাত্র তখনই থাকা উচিত যখন কার অ্যাপ লাইব্রেরি ব্যবহার করে তৈরি কোনো অ্যাপের CarAppActivity এর জন্য <activity> ম্যানিফেস্ট এলিমেন্টটি ডিক্লেয়ার করা হয় । অন্য কোনো অ্যাক্টিভিটিকে ডিস্ট্র্যাকশন অপটিমাইজড হিসেবে চিহ্নিত করা উচিত নয় — যদি কোনোটিকে করা হয়, তাহলে গুগল প্লে স্টোরে জমা দেওয়ার সময় আপনার অ্যাপটি প্রত্যাখ্যাত হবে।

প্রবেশগম্যতা

অ্যান্ড্রয়েড অটোমোটিভ ওএস-এর জন্য অ্যাক্সেসিবিলিটি সাপোর্ট অন্যান্য ফর্ম ফ্যাক্টরের মতো ততটা ব্যাপক নয়। অ্যান্ড্রয়েড অটোমোটিভ ওএস ডিভাইসগুলিতে টকব্যাক , সুইচ অ্যাক্সেস এবং ভয়েস অ্যাক্সেস উপলব্ধ নয়।

অ্যান্ড্রয়েড অটোমোটিভ ওএস ডিভাইসগুলিতে ক্যাপশনিং পছন্দগুলি সমর্থিত। ইন্টিগ্রেশনের বিশদ বিবরণের জন্য 'সিস্টেম ক্যাপশন সেটিংস গ্রহণ করুন ' দেখুন।

নেটওয়ার্ক নির্বাচন

অ্যান্ড্রয়েড অটোমোটিভ ওএস পার-অ্যাপ্লিকেশন নেটওয়ার্ক সিলেকশন (PANS) সমর্থন করে, যা OEM-দেরকে অ্যাপ্লিকেশন-ভিত্তিক মোবাইল নেটওয়ার্ক ট্র্যাফিককে বিভিন্ন নেটওয়ার্কে রাউট করার সুযোগ দেয়।

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

সিস্টেমের বৈশিষ্ট্য

PackageManager::hasSystemFeature ব্যবহার করে আপনি কোনো নির্দিষ্ট ফিচার উপলব্ধ আছে কিনা তা শনাক্ত করতে পারেন এবং সেই অনুযায়ী আপনার অ্যাপের আচরণ পরিবর্তন করতে পারেন।

হার্ডওয়্যার বৈশিষ্ট্য

অন্যান্য স্থির মাধ্যমের মতোই, গাড়িতে উপলব্ধ হার্ডওয়্যার বৈশিষ্ট্যগুলো মোবাইল ডিভাইসে থাকা বৈশিষ্ট্যগুলো থেকে ভিন্ন হতে পারে।

স্ক্রিন ওরিয়েন্টেশন

টিভির মতো, গাড়িও একটি নির্দিষ্ট ওরিয়েন্টেশনের ডিভাইস। তবে টিভির থেকে ভিন্ন, এগুলো পোর্ট্রেট এবং ল্যান্ডস্কেপ উভয় ওরিয়েন্টেশনেই পাওয়া যায়। অ্যান্ড্রয়েড অটোমোটিভ ওএস-এর জন্য তৈরি অ্যাপগুলো যাতে সমস্ত যানবাহনে বিতরণ করা যায়, তা নিশ্চিত করার জন্য অ্যাপগুলোকে অবশ্যই নিশ্চিত করতে হবে যে android.hardware.screen.landscape অথবা android.hardware.screen.portrait ফিচারগুলোর জন্য তাদের কোনো সুস্পষ্ট বা অন্তর্নিহিত ফিচার রিকোয়ারমেন্ট নেই।

নেটওয়ার্ক অবস্থান

অনেক অ্যান্ড্রয়েড অটোমোটিভ ওএস ডিভাইস নেটওয়ার্ক লোকেশন প্রদানের জন্য ব্যবহৃত টেলিফোনি স্ট্যাক প্রয়োগ করে না এবং তাই android.hardware.location.network সিস্টেম ফিচারটি রিপোর্ট করে না। যদিও নেটওয়ার্ক লোকেশন উপলব্ধ নাও থাকতে পারে, কোর্স লোকেশন অ্যাক্সেস করা এখনও সমর্থিত – অ্যান্ড্রয়েড অটোমোটিভ ওএস-এ কোর্স লোকেশন দেখুন।

সফ্টওয়্যার বৈশিষ্ট্য

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

গুগল প্লে-এর ফিচারের প্রয়োজনীয়তা পূরণ করুন

গুগল প্লে-এর মাধ্যমে গাড়িতে বিতরণের জন্য, অ্যান্ড্রয়েড অটোমোটিভ ওএস-এর জন্য তৈরি অ্যাপগুলিকে অবশ্যই AndroidManifest.xml ফাইলে android.hardware.type.automotive ফিচারটির জন্য একটি <uses-feature> এলিমেন্ট অন্তর্ভুক্ত করতে হবে:

<manifest ...>
  ...
  <!--
    See Choose a track for Android Automotive OS
    for details on how to choose which value to use for the android:required attribute.
  -->
  <uses-feature
      android:name="android.hardware.type.automotive"
      android:required="[true|false]">
  ...
</manifest>

এছাড়াও, যদি আপনার অ্যাপে android:required="true" সহ কোনো সুস্পষ্ট ফিচার ডিক্লারেশন থাকে অথবা নিম্নলিখিত ফিচারগুলোর কোনোটির জন্য কোনো অন্তর্নিহিত ফিচার রিকোয়ারমেন্ট থাকে , তাহলে আপনাকে অবশ্যই সেগুলো আপডেট বা অপসারণ করতে হবে, যাতে আপনার অ্যাপের ফিচার রিকোয়ারমেন্টগুলো অন্যথায় সামঞ্জস্যপূর্ণ যানবাহনে এর বিতরণে বাধা না দেয়:

android:required="true" দিয়ে সুস্পষ্টভাবে ঘোষিত ফিচারগুলোর জন্য, আপনি নিম্নলিখিত উপায়গুলোর মধ্যে একটি অনুসরণ করতে পারেন:

  • যদি ফিচারটি অন্য কোনোভাবে পরোক্ষভাবে প্রয়োজনীয় না হয়, তাহলে <uses-feature> এলিমেন্টটি মুছে ফেলুন।
  • android:required="false" ব্যবহার করে ফিচারটি সুস্পষ্টভাবে ঘোষণা করুন।

অন্তর্নিহিতভাবে প্রয়োজনীয় বৈশিষ্ট্যগুলোর জন্য, আপনি নিম্নলিখিত কাজগুলোর মধ্যে একটি করতে পারেন:

  • android:required="false" ব্যবহার করে ফিচারটি সুস্পষ্টভাবে ঘোষণা করুন।
  • ফিচারটির উপর অন্তর্নিহিত আবশ্যকতা আরোপকারী ম্যানিফেস্ট ভ্যালুগুলো অপসারণ বা আপডেট করুন।

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

প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী

কোন কোন গাড়িতে গুগল বিল্ট-ইন থাকে?

যেসব OEM-এর মডেলে গুগল বিল্ট-ইন রয়েছে, তাদের তালিকার জন্য Cars with Google বিল্ট-ইন সাইটটি দেখুন। প্লে কনসোলের ডিভাইস ক্যাটালগ ব্যবহার করে হার্ডওয়্যার স্পেসিফিকেশন এবং ডিভাইসের অন্যান্য বিবরণ পাওয়া যাবে।