ব্লুটুথ

Android Bluetooth HAL আইকন

Android একটি ডিফল্ট ব্লুটুথ স্ট্যাক প্রদান করে যা ক্লাসিক ব্লুটুথ এবং ব্লুটুথ লো এনার্জি (BLE) উভয়কেই সাপোর্ট করে। ব্লুটুথ ব্যবহার করে, Android ডিভাইস আশেপাশের ব্লুটুথ ডিভাইসের সাথে ডেটা আদান-প্রদান করার জন্য ব্যক্তিগত এরিয়া নেটওয়ার্ক তৈরি করতে পারে।

Android 4.3 ও এর পরবর্তী যেকোনও ভার্সনে, Android ব্লুটুথ স্ট্যাক BLE প্রয়োগ করার ক্ষমতা প্রদান করে। BLE API-এর সম্পূর্ণ সুবিধা নিতে, Android ব্লুটুথ HCI সংক্রান্ত প্রয়োজনীয়তা অনুসরণ করুন। উপযুক্ত চিপসেট সহ Android ডিভাইস ক্লাসিক ব্লুটুথ বা ক্লাসিক ব্লুটুথ ও BLE দু'টিই প্রয়োগ করতে পারে। BLE, পুরনো ব্লুটুথ চিপসেটের সাথে ব্যাকওয়ার্ড কম্প্যাটিবল নয়।

Android 8.0-এ, ব্লুটুথ স্ট্যাক ব্লুটুথ 5-এর জন্য সম্পূর্ণ উপযুক্ত। উপলভ্য ব্লুটুথ ৫ ফিচার ব্যবহার করতে, ডিভাইসে ব্লুটুথ ৫ কোয়ালিফায়েড চিপসেট থাকতে হবে।

Android আর্কিটেকচার

ব্লুটুথ অ্যাপ Binder-এর মাধ্যমে ব্লুটুথ প্রসেসের সাথে যোগাযোগ করে। ব্লুটুথ প্রসেস, ব্লুটুথ স্ট্যাকের সাথে যোগাযোগ করতে Java Native Interface (JNI) ব্যবহার করে এবং ডেভেলপারদের বিভিন্ন ব্লুটুথ প্রোফাইল অ্যাক্সেস করার সুবিধা দেয়। এই ডায়াগ্রাম ব্লুটুথ স্ট্যাকের সাধারণ গঠন দেখায়:

Android ব্লুটুথ স্ট্যাকের লেয়ার দেখানো ডায়াগ্রাম।

ছবি ১. Android ব্লুটুথ আর্কিটেকচার।

অ্যাপ ফ্রেমওয়ার্ক
অ্যাপ ফ্রেমওয়ার্ক লেভেলে অ্যাপ কোড থাকে, যা ব্লুটুথ হার্ডওয়্যারের সাথে ইন্টার‍্যাক্ট করার জন্য android.bluetooth API ব্যবহার করে। অভ্যন্তরীণভাবে, এই কোডটি বাইন্ডার IPC মেকানিজমের মাধ্যমে ব্লুটুথ প্রসেসকে কল করে।
ব্লুটুথ অ্যাপ
ব্লুটুথ অ্যাপ, যা packages/modules/Bluetooth/android/app-এ অবস্থিত, Android অ্যাপ হিসেবে প্যাকেজ করা হয় এবং Android ফ্রেমওয়ার্ক লেয়ারে ব্লুটুথ প্রোফাইল ইমপ্লিমেন্ট করে। এই অ্যাপটি JNI-এর মাধ্যমে ব্লুটুথ স্ট্যাকের মধ্যে কল করে।
JNI
android.bluetooth-এর সাথে যুক্ত JNI কোডটি packages/modules/Bluetooth/android/app/jni-এ আছে। নির্দিষ্ট ব্লুটুথ অপারেশন হলে JNI কোড ব্লুটুথ স্ট্যাককে কল করে, যেমন ডিভাইস ডিসকভার করার সময়।
ব্লুটুথ স্ট্যাক
AOSP-তে ডিফল্ট ব্লুটুথ স্ট্যাক প্রদান করা হয় এবং এটি packages/modules/Bluetooth/system-এ থাকে। স্ট্যাকটি জেনেরিক ব্লুটুথ HAL প্রয়োগ করে এবং এক্সটেনশন ও কনফিগারেশন পরিবর্তনের মাধ্যমে কাস্টমাইজ করে।
ভেন্ডর ইমপ্লিমেন্টেশন
HAL ইন্টারফেস ডেফিনিশন ল্যাঙ্গুয়েজ (HIDL) ব্যবহার করে ভেন্ডর ডিভাইস ব্লুটুথ স্ট্যাকের সাথে ইন্টার‍্যাক্ট করে।

HIDL

HIDL, Bluetooth স্ট্যাক ও ভেন্ডর ইমপ্লিমেন্টেশনের মধ্যে ইন্টারফেসকে সংজ্ঞায়িত করে। Bluetooth HIDL ফাইল তৈরি করতে, HIDL জেনারেশন টুলে Bluetooth ইন্টারফেস ফাইল পাস করুন। ইন্টারফেস ফাইলগুলি hardware/interfaces/bluetooth-এ অবস্থিত।

ব্লুটুথ স্ট্যাক ডেভেলপমেন্ট

Android ব্লুটুথ স্ট্যাক হল একটি সম্পূর্ণ উপযুক্ত ব্লুটুথ স্ট্যাক। Bluetooth SIG ওয়েবসাইটে কোয়ালিফিকেশন তালিকা দেওয়া আছে (সাইন-ইন করতে হবে) QDID 169365-এর অধীনে।

মূল ব্লুটুথ স্ট্যাক packages/modules/Bluetooth-এ থাকে। AOSP-তে ডেভেলপমেন্ট হয় এবং কন্ট্রিবিউশনকে স্বাগত জানানো হয়।