ব্লুটুথ

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

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

অ্যান্ড্রয়েড ৪.৩ এবং তারপরে অ্যান্ড্রয়েড ব্লুটুথ স্ট্যাক ব্লুটুথ লো এনার্জি (বিএলই) প্রয়োগ করার ক্ষমতা সরবরাহ করে। BLE API গুলি সম্পূর্ণরূপে উপার্জন করতে, অ্যান্ড্রয়েড ব্লুটুথ এইচসিআই প্রয়োজনীয়তা অনুসরণ করুন। যোগ্য চিপসেট সহ অ্যান্ড্রয়েড ডিভাইসগুলি ক্লাসিক ব্লুটুথ বা ক্লাসিক ব্লুটুথ এবং বিএলই উভয়ই প্রয়োগ করতে পারে। বিএলই পুরানো ব্লুটুথ চিপসেটের সাথে পিছনের দিকে সামঞ্জস্যপূর্ণ নয়।

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

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

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

অ্যান্ড্রয়েড ব্লুটুথ আর্কিটেকচার
চিত্র 1. অ্যান্ড্রয়েড ব্লুটুথ আর্কিটেকচার
অ্যাপ্লিকেশন কাঠামো
অ্যাপ্লিকেশন কাঠামোর স্তরে অ্যাপ্লিকেশন কোডটি রয়েছে যা ব্লুটুথ হার্ডওয়্যার সাথে ইন্টারঅ্যাক্ট করতে অ্যান্ড্রয়েড.ব্লুটুথ এপিআই ব্যবহার করে। অভ্যন্তরীণভাবে, এই কোডটি বাইন্ডার আইপিসি প্রক্রিয়াটির মাধ্যমে ব্লুটুথ প্রক্রিয়াটিকে কল করে।
ব্লুটুথ সিস্টেম পরিষেবা
packages/apps/Bluetooth অবস্থিত ব্লুটুথ সিস্টেম পরিষেবাটি অ্যান্ড্রয়েড অ্যাপ হিসাবে প্যাকেজ করা হয়েছে এবং অ্যান্ড্রয়েড ফ্রেমওয়ার্ক স্তরে ব্লুটুথ পরিষেবাদি এবং প্রোফাইলগুলি প্রয়োগ করে। এই অ্যাপ্লিকেশনটি জেএনআই এর মাধ্যমে নেটিভ ব্লুটুথ স্ট্যাকে কল করে।
জেএনআই
packages/apps/Bluetooth/jni । নির্দিষ্ট কিছু ব্লুটুথ ক্রিয়াকলাপ ঘটে যখন যেমন ডিভাইসগুলি আবিষ্কার করা হয় তখন জেএনআই কোড ব্লুটুথ স্ট্যাকে কল করে।
ব্লুটুথ স্ট্যাক
ডিফল্ট ব্লুটুথ স্ট্যাক এওএসপিতে সরবরাহ করা হয় এবং এটি system/bt অবস্থিত। স্ট্যাকটি জেনেরিক ব্লুটুথ এইচএল প্রয়োগ করে এবং এটি এক্সটেনশন এবং কনফিগারেশন পরিবর্তনের সাথে কাস্টমাইজ করে।
বিক্রেতার বাস্তবায়ন
বিক্রেতা ডিভাইসগুলি হার্ডওয়্যার ইন্টারফেস ডিজাইন ভাষা (এইচআইডিএল) ব্যবহার করে ব্লুটুথ স্ট্যাকের সাথে যোগাযোগ করে।

এইচআইডিএল

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

ব্লুটুথ স্ট্যাক বিকাশ

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

মূল ব্লুটুথ স্ট্যাকটি system/bt । বিকাশ এওএসপিতে ঘটে এবং অবদানগুলি স্বাগত।

অ্যান্ড্রয়েড 7.x এবং আগের আর্কিটেকচার

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

অ্যান্ড্রয়েড ব্লুটুথ আর্কিটেকচার
চিত্র 2. অ্যান্ড্রয়েড 7.x এবং পূর্ববর্তী ব্লুটুথ আর্কিটেকচার
অ্যাপ্লিকেশন কাঠামো
অ্যাপ্লিকেশন ফ্রেমওয়ার্ক স্তরে অ্যাপ্লিকেশন কোড, যা ব্লুটুথ হার্ডওয়্যার সাথে ইন্টারঅ্যাক্ট করতে অ্যান্ড্রয়েড.ব্লুটুথ এপিআই ব্যবহার করে। অভ্যন্তরীণভাবে, এই কোডটি বাইন্ডার আইপিসি প্রক্রিয়াটির মাধ্যমে ব্লুটুথ প্রক্রিয়াটিকে কল করে।
ব্লুটুথ সিস্টেম পরিষেবা
packages/apps/Bluetooth অবস্থিত ব্লুটুথ সিস্টেম পরিষেবাটি অ্যান্ড্রয়েড অ্যাপ হিসাবে প্যাকেজ করা হয়েছে এবং অ্যান্ড্রয়েড ফ্রেমওয়ার্ক স্তরে ব্লুটুথ পরিষেবা এবং প্রোফাইলগুলি প্রয়োগ করে। এই অ্যাপ্লিকেশনটি জেএনআইয়ের মাধ্যমে এইচএল স্তরটিতে কল করে।
জেএনআই
সঙ্গে যুক্ত JNI কোড android.bluetooth অবস্থিত packages/apps/Bluetooth/jni । জেএনআই কোড এইচএএল স্তরে কল করে এবং নির্দিষ্ট ব্লুটুথ ক্রিয়াকলাপগুলি ঘটে যখন ডিভাইসগুলি আবিষ্কার হয় তখন এইচএএল থেকে কলব্যাকগুলি গ্রহণ করে।
এইচএএল
হার্ডওয়্যার অ্যাবস্ট্রাকশন স্তরটি স্ট্যান্ডার্ড ইন্টারফেসটিকে সংজ্ঞায়িত করে যাঅ্যান্ড্রয়েড.ব্লুথুথ এপিআই এবং ব্লুটুথ প্রসেস কল করে এবং আপনার ব্লুটুথ হার্ডওয়্যার সঠিকভাবে কার্যকর করতে আপনাকে অবশ্যই প্রয়োগ করতে হবে। ব্লুটুথ এইচএল এর শিরোনাম ফাইলটি হল hardware/libhardware/include/hardware/bluetooth.h । অতিরিক্ত হিসাবে, সমস্ত hardware/libhardware/include/hardware/bt_*.h ফাইলগুলি পর্যালোচনা করুন।
ব্লুটুথ স্ট্যাক
ডিফল্ট ব্লুটুথ স্ট্যাক আপনার জন্য সরবরাহ করা হয় এবং এটি system/bt অবস্থিত। স্ট্যাকটি জেনেরিক ব্লুটুথ এইচএল প্রয়োগ করে এবং এটি এক্সটেনশন এবং কনফিগারেশন পরিবর্তনের সাথে কাস্টমাইজ করে।
বিক্রেতার এক্সটেনশন
কাস্টম এক্সটেনশন এবং ট্রেসিংয়ের জন্য একটি এইচসিআই স্তর যুক্ত করতে, আপনি একটি libbt- বিক্রেতা মডিউল তৈরি করতে পারেন এবং এই উপাদানগুলি নির্দিষ্ট করতে পারেন।

এইচএএল বাস্তবায়ন করা হচ্ছে

ব্লুটুথ /hardware/libhardware/include/hardware/bluetooth.h/hardware/libhardware/include/hardware/bluetooth.h অবস্থিত। bluetooth.h ফাইলটিতে ব্লুটুথ স্ট্যাকের জন্য প্রাথমিক ইন্টারফেস রয়েছে এবং আপনাকে অবশ্যই এটির কার্যকারিতা বাস্তবায়ন করতে হবে।

প্রোফাইল-নির্দিষ্ট ফাইলগুলি একই ডিরেক্টরিতে অবস্থিত। বিশদ জন্য, এইচএএল ফাইল রেফারেন্স দেখুন