হার্ডওয়্যার বিমূর্ততা স্তর ওভারভিউ

অ্যান্ড্রয়েড 8.0 এবং উচ্চতর, একটি নতুন, আরও মডুলার আর্কিটেকচার গ্রহণ করার জন্য নিম্ন-স্তরের স্তরগুলি পুনরায় লেখা হয়৷ অ্যান্ড্রয়েড 8.0 এবং উচ্চতর ডিভাইসগুলিকে অবশ্যই HIDL-এ লেখা HAL সমর্থন করতে হবে, নীচে তালিকাভুক্ত কয়েকটি ব্যতিক্রম সহ। এই HALগুলি বাইন্ডারাইজড বা পাসথ্রু হতে পারে। Android 11-এ, AIDL-এ লেখা HALগুলিও সমর্থিত। সমস্ত AIDL HAL বাইন্ডারাইজড।

  • Binderized HALs . HALগুলি HAL ইন্টারফেস ডেফিনিশন ল্যাঙ্গুয়েজ (HIDL) বা Android ইন্টারফেস ডেফিনিশন ল্যাঙ্গুয়েজ (AIDL) তে প্রকাশ করা হয়েছে। এই HALগুলি Android-এর পূর্ববর্তী সংস্করণগুলিতে ব্যবহৃত প্রচলিত এবং উত্তরাধিকারী উভয় HALগুলিকে প্রতিস্থাপন করে৷ বাইন্ডারাইজড এইচএএল-এ, অ্যান্ড্রয়েড ফ্রেমওয়ার্ক এবং এইচএএল বাইন্ডার ইন্টার-প্রসেস কমিউনিকেশন (আইপিসি) কল ব্যবহার করে একে অপরের সাথে যোগাযোগ করে। অ্যান্ড্রয়েড 8.0 বা তার পরবর্তী সংস্করণের সাথে লঞ্চ হওয়া সমস্ত ডিভাইসকে শুধুমাত্র বাইন্ডারাইজড HAL সমর্থন করতে হবে।

  • পাসথ্রু HALs । একটি HIDL- মোড়ানো প্রচলিত বা লিগ্যাসি HALগুলি এই HALগুলি বিদ্যমান HALগুলিকে মোড়ানো এবং বাইন্ডারাইজড এবং একই-প্রক্রিয়া (পাসথ্রু) মোডে HAL-কে পরিবেশন করতে পারে। Android 8.0 তে আপগ্রেড করা ডিভাইসগুলি পাসথ্রু HAL ব্যবহার করতে পারে৷

HAL মোড প্রয়োজনীয়তা

যন্ত্র পাসথ্রু বাইন্ডারাইজড
Android 8.0 এর সাথে লঞ্চ করুন পাসথ্রুতে তালিকাভুক্ত এইচএএলগুলি অবশ্যই পাসথ্রু হতে হবে। অন্যান্য সমস্ত HALগুলি বাইন্ডারাইজড (HAL সহ যেগুলি বিক্রেতা এক্সটেনশন)।
Android 8.0 এ আপগ্রেড করুন পাসথ্রুতে তালিকাভুক্ত এইচএএলগুলি অবশ্যই পাসথ্রু হতে হবে। বাইন্ডারাইজড HAL-এ তালিকাভুক্ত HALগুলি অবশ্যই বাইন্ডারাইজড হতে হবে৷
বিক্রেতা ইমেজ দ্বারা প্রদত্ত অন্যান্য সমস্ত HALs পাসথ্রু বা বাইন্ডারাইজড মোডে হতে পারে। একটি সম্পূর্ণরূপে Treble-সঙ্গতিপূর্ণ ডিভাইসে, এই সব অবশ্যই binderized করা আবশ্যক.

Binderized HALs

অ্যান্ড্রয়েডের জন্য নিম্নলিখিত এইচএএলগুলিকে সমস্ত অ্যান্ড্রয়েড ডিভাইসে বাইন্ডারাইজ করা প্রয়োজন, সেগুলি লঞ্চ ডিভাইস বা আপগ্রেড ডিভাইস যাই হোক না কেন:

  • android.hardware.biometrics.fingerprint@2.1fingerprintd প্রতিস্থাপন করে যা Android 8.0 এ আর নেই।
  • android.hardware.configstore@1.0 । Android 8.0 এ নতুন।
  • android.hardware.dumpstate@1.0 । এই HAL দ্বারা প্রদত্ত মূল ইন্টারফেসটি শিম করা যায়নি এবং পরিবর্তন করা হয়েছে। এই কারণে, একটি প্রদত্ত ডিভাইসে dumpstate_board পুনরায় প্রয়োগ করতে হবে (এটি একটি ঐচ্ছিক HAL)।
  • android.hardware.graphics.allocator@2.0 । অ্যান্ড্রয়েড 8.0 এ বাইন্ডারাইজ করা প্রয়োজন তাই ফাইল বর্ণনাকারীকে বিশ্বস্ত এবং অবিশ্বস্ত প্রক্রিয়াগুলির মধ্যে ভাগ করতে হবে না৷
  • android.hardware.radio@1.0rild দ্বারা প্রদত্ত ইন্টারফেস প্রতিস্থাপন করে যা তার নিজস্ব প্রক্রিয়ায় থাকে।
  • android.hardware.usb@1.0 । Android 8.0 এ নতুন।
  • android.hardware.wifi@1.0 । Android 8.0-এ নতুন, system_server লোড হওয়া উত্তরাধিকারী Wi-Fi HAL লাইব্রেরি প্রতিস্থাপন করে
  • android.hardware.wifi.supplicant@1.0 বিদ্যমান wpa_supplicant প্রক্রিয়ার উপর একটি HIDL ইন্টারফেস।

পাসথ্রু HALs

অ্যান্ড্রয়েডের জন্য সমস্ত অ্যান্ড্রয়েড ডিভাইসে পাসথ্রু মোডে থাকা নিম্নলিখিত HALগুলি প্রয়োজন, সেগুলি লঞ্চ ডিভাইস বা আপগ্রেড ডিভাইস যাই হোক না কেন:

  • android.hardware.graphics.mapper@1.0 । এটি যে প্রক্রিয়ায় থাকে তার মেমরি ম্যাপ করে।
  • android.hardware.renderscript@1.0 । একই প্রক্রিয়ায় আইটেম পাস করে ( openGL এর সমতুল্য)।

উপরে তালিকাভুক্ত নয় এমন সমস্ত HALগুলিকে লঞ্চ ডিভাইসের জন্য বাইন্ডারাইজ করা আবশ্যক৷

একই-প্রক্রিয়া HALs

সেম-প্রসেস HALs (SP-HALs) সবসময় একই প্রক্রিয়ায় খোলা থাকে যেখানে তারা ব্যবহার করা হয়। এর মধ্যে HIDL-এ প্রকাশ করা হয়নি এমন সমস্ত HAL এবং সেইসাথে কিছু যেগুলি বাইন্ডারাইজড নয়। SP-HAL সেটের সদস্যতা শুধুমাত্র Google দ্বারা নিয়ন্ত্রিত হয়, কোন ব্যতিক্রম ছাড়াই।

এসপি-এইচএএল-এর মধ্যে নিম্নলিখিতগুলি অন্তর্ভুক্ত রয়েছে:

  • openGL
  • Vulkan
  • android.hidl.memory@1.0 (অ্যান্ড্রয়েড সিস্টেম দ্বারা সরবরাহ করা, সর্বদা পাসথ্রু)
  • android.hardware.graphics.mapper@1.0
  • android.hardware.renderscript@1.0