ব্লুটুথ

অ্যান্ড্রয়েড ব্লুটুথ HAL আইকন

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

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

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

অ্যান্ড্রয়েড আর্কিটেকচার

একটি ব্লুটুথ অ্যাপ বাইন্ডারের মাধ্যমে ব্লুটুথ প্রক্রিয়ার সাথে যোগাযোগ করে। ব্লুটুথ প্রক্রিয়াটি ব্লুটুথ স্ট্যাকের সাথে যোগাযোগের জন্য জাভা নেটিভ ইন্টারফেস (জেএনআই) ব্যবহার করে এবং বিকাশকারীদের বিভিন্ন ব্লুটুথ প্রোফাইলে অ্যাক্সেস প্রদান করে। এই চিত্রটি ব্লুটুথ স্ট্যাকের সাধারণ গঠন দেখায়:

অ্যান্ড্রয়েড ব্লুটুথ স্ট্যাকের স্তরগুলি দেখানো ডায়াগ্রাম৷

চিত্র 1. অ্যান্ড্রয়েড ব্লুটুথ আর্কিটেকচার।

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

এইচআইডিএল

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

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

অ্যান্ড্রয়েড ব্লুটুথ স্ট্যাক একটি সম্পূর্ণ যোগ্য ব্লুটুথ স্ট্যাক। QDID 169365- এর অধীনে ব্লুটুথ SIG ওয়েবসাইটে (সাইন-ইন প্রয়োজন) যোগ্যতার তালিকা রয়েছে।

মূল ব্লুটুথ স্ট্যাক packages/modules/Bluetooth মধ্যে থাকে। AOSP-তে উন্নয়ন ঘটে এবং অবদানগুলিকে স্বাগত জানানো হয়।