হার্ডওয়্যার অ্যাবস্ট্রাকশন লেয়ার (HAL) হল এক ধরনের অ্যাবস্ট্রাকশন লেয়ার, যা হার্ডওয়্যার ভেন্ডরদের প্রয়োগ করার জন্য একটি স্ট্যান্ডার্ড ইন্টারফেসের সাথে যুক্ত। HAL, হার্ডওয়্যার ভেন্ডরদের, উচ্চ-লেভেলের লেয়ারে কোড প্রভাবিত বা পরিবর্তন না করেই, নিম্ন-লেভেলের ডিভাইস-নির্দিষ্ট ফিচার প্রয়োগ করতে দেয়।
প্রয়োজনীয় শব্দ
ডকুমেন্টেশনের এই বিভাগে ব্যবহৃত শব্দগুলির সংজ্ঞার তালিকা নিচে দেওয়া হল:
- Android ইন্টারফেস ডেফিনিশন ল্যাঙ্গুয়েজ (AIDL)
- ইন্টারফেসকে এমনভাবে সংজ্ঞায়িত করতে ব্যবহৃত জাভার মতো ভাষা যা ব্যবহৃত প্রোগ্রামিং ভাষা থেকে স্বতন্ত্র। AIDL, HAL ক্লায়েন্ট ও HAL পরিষেবার মধ্যে যোগাযোগ স্থাপন করতে দেয়।
- Binderized HAL
- একটি HAL যা বাইন্ডার ইন্টার-প্রসেস কমিউনিকেশন (IPC) কল ব্যবহার করে অন্যান্য প্রসেসের সাথে কমিউনিকেট করে। যে ক্লায়েন্ট বাইন্ডারাইজড HAL ব্যবহার করে, সেটি থেকে আলাদা প্রসেসে বাইন্ডারাইজড HAL রান করে। Binderized HAL পরিষেবা ম্যানেজারের সাথে রেজিস্টার করা থাকে যাতে ক্লায়েন্টরা এর ক্ষমতা অ্যাক্সেস করতে পারেন। Android 8 ও তার পরবর্তী যেকোনও ভার্সনের জন্য লেখা HAL হল বাইন্ডারাইজড।
- HAL ক্লায়েন্ট
- HAL পরিষেবা অ্যাক্সেস করে এমন প্রসেস।
- HAL ইন্টারফেস
- যোগাযোগ করার জন্য HAL ক্লায়েন্ট ও পরিষেবা, দু'টিই যে সাধারণ ইন্টারফেস ব্যবহার করে।
- HAL পরিষেবা
হার্ডওয়্যার-নির্দিষ্ট কোড, যেমন আপনার নির্দিষ্ট ডিভাইসের ক্যামেরার সাথে কথা বলা কোড। আপনার ভেন্ডর পার্টিশনে টার্গেট করা রিলিজের জন্য কম্প্যাটিবিলিটি ম্যাট্রিক্সে তালিকাভুক্ত সব প্রয়োজনীয় HAL আপনাকে অবশ্যই প্রয়োগ করতে হবে। কম্প্যাটিবিলিটি ম্যাট্রিক্স সম্পর্কে আরও জানতে, কম্প্যাটিবিলিটি ম্যাট্রিক্স দেখুন।
এছাড়াও, আপনার হার্ডওয়্যারের অনন্য ক্ষমতাকে সাপোর্ট করার জন্য আপনি নতুন HAL ইন্টারফেস তৈরি করতে অথবা HAL-এর ইন্টারফেসকে আরও বাড়াতে পারেন।
- হার্ডওয়্যার ইন্টারফেস ডেফিনিশন ল্যাঙ্গুয়েজ (HIDL)
ইন্টারফেসকে এমনভাবে সংজ্ঞায়িত করতে ব্যবহৃত একটি ভাষা যা ব্যবহৃত প্রোগ্রামিং ভাষা থেকে স্বাধীন। HIDL, HAL ক্লায়েন্ট ও HAL পরিষেবার মধ্যে যোগাযোগ স্থাপন করতে সাহায্য করে।
- Same Process (SP) HAL
র্যাপ করা HAL-এর একটি সীমিত সেট। সেটে মেম্বারশিপ Google-এর দ্বারা নিয়ন্ত্রিত হয়। SP HAL-এর মধ্যে এগুলি অন্তর্ভুক্ত:
- Stable C mapper 5 HAL
- OpenGL
- Vulkan
- android.hidl.memory@1.0 (Android সিস্টেমের মাধ্যমে প্রদান করা হয়, সবসময় র্যাপ করা থাকে)
- android.hardware.renderscript@1.0
- র্যাপ করা HAL
Android 8-এর আগে তৈরি করা হয়েছে এমন HAL পরিষেবা, কিন্তু Android 8 ও তার পরবর্তী যেকোনও ভার্সনের সাথে কাজ করার জন্য AIDL বা HIDL র্যাপারে র্যাপ করা হয়েছে।
এর পরে কী হবে?
- HAL পরিষেবা কীভাবে প্রয়োগ করতে হয় তা জানতে, HAL-এর জন্য AIDL দেখুন।
- কীভাবে আগে থেকে থাকা HAL তৈরি বা এক্সটেন্ড করতে হয় তা জানতে, অ্যাটাচ করা এক্সটেন্ডেড ইন্টারফেস দেখুন।