Google 致力于为黑人社区推动种族平等。查看具体举措
ترجمت واجهة Cloud Translation API‏ هذه الصفحة.
Switch to English

بلوتوث

رمز Android Bluetooth HAL

يوفر Android حزمة Bluetooth افتراضية تدعم كلاً من Classic Bluetooth و Bluetooth Low Energy. باستخدام Bluetooth ، يمكن لأجهزة Android إنشاء شبكات منطقة شخصية لإرسال البيانات واستلامها باستخدام أجهزة Bluetooth القريبة.

في Android 4.3 والإصدارات الأحدث ، توفر مكدس Android Bluetooth القدرة على تنفيذ Bluetooth Low Energy (BLE). للاستفادة الكاملة من واجهات برمجة تطبيقات BLE ، اتبع متطلبات Android Bluetooth HCI . يمكن لأجهزة Android المزودة بمجموعة شرائح مؤهلة تنفيذ إما Classic Bluetooth أو كلاسيك Bluetooth و BLE. لا يتوافق BLE مع شرائح البلوتوث القديمة.

في Android 8.0 ، تكون حزمة Bluetooth الأصلية مؤهلة تمامًا لـ Bluetooth 5. لاستخدام ميزات Bluetooth 5 المتاحة ، يحتاج الجهاز إلى مجموعة شرائح مؤهلة لـ Bluetooth 5.

بنية Android 8.0

يتصل تطبيق Bluetooth بعملية Bluetooth من خلال Binder. تستخدم عملية Bluetooth JNI للتواصل مع مكدس Bluetooth وتزويد المطورين بإمكانية الوصول إلى ملفات تعريف Bluetooth المختلفة. يوضح هذا الرسم البياني الهيكل العام لمكدس البلوتوث:

هندسة بلوتوث Android 8.0
الشكل 1. هندسة بلوتوث Android 8.0
إطار تطبيق
على مستوى إطار التطبيق ، يوجد رمز التطبيق ، والذي يستخدم واجهات برمجة التطبيقات android.bluetooth للتفاعل مع أجهزة Bluetooth. داخليًا ، يستدعي هذا الرمز عملية Bluetooth من خلال آلية Binder IPC.
خدمة نظام البلوتوث
يتم تجميع خدمة نظام Bluetooth ، الموجودة في packages/apps/Bluetooth ، كتطبيق Android وتنفذ خدمات Bluetooth وملفات التعريف في طبقة إطار عمل Android. يستدعي هذا التطبيق مكدس Bluetooth الأصلي عبر JNI.
JNI
يوجد رمز JNI المرتبط بـ android.bluetooth في packages/apps/Bluetooth/jni . يتصل كود JNI بمكدس Bluetooth عند حدوث عمليات Bluetooth معينة ، مثل اكتشاف الأجهزة.
حزمة بلوتوث
يتم توفير مكدس Bluetooth الافتراضي في AOSP ويقع في system/bt . يقوم المكدس بتنفيذ Bluetooth HAL العام وتخصيصه بالامتدادات وتغييرات التكوين.
تنفيذ البائع
تتفاعل أجهزة البائع مع مكدس Bluetooth باستخدام لغة تصميم واجهة الأجهزة (HIDL).

HIDL

يحدد HIDL الواجهة بين مكدس Bluetooth وتنفيذ البائع. لإنشاء ملفات Bluetooth HIDL ، قم بتمرير ملفات واجهة Bluetooth إلى أداة إنشاء HIDL. توجد ملفات الواجهة في hardware/interfaces/bluetooth .

تطوير مكدس البلوتوث

مكدس Android 8.0 Bluetooth عبارة عن مكدس Bluetooth مؤهل بالكامل. قائمة المؤهلات موجودة على موقع Bluetooth SIG على الويب تحت QDID 97584 .

مكدس البلوتوث الأساسي موجود في system/bt . يحدث التطوير في AOSP ، والمساهمات موضع ترحيب.

Android 7.x والبنية الأقدم

تتواصل خدمة نظام Bluetooth مع مكدس Bluetooth من خلال JNI ومع التطبيقات من خلال Binder IPC. توفر خدمة النظام للمطورين إمكانية الوصول إلى ملفات تعريف Bluetooth المتنوعة. يوضح هذا الرسم البياني الهيكل العام لمكدس البلوتوث:

هندسة Android Bluetooth
الشكل 2. Android 7.x وهندسة البلوتوث الأقدم
إطار تطبيق
على مستوى إطار التطبيق ، يوجد رمز التطبيق ، والذي يستخدم واجهات برمجة التطبيقات android.bluetooth للتفاعل مع أجهزة Bluetooth. داخليًا ، يستدعي هذا الرمز عملية Bluetooth من خلال آلية Binder IPC.
خدمة نظام البلوتوث
يتم تجميع خدمة نظام Bluetooth ، الموجودة في packages/apps/Bluetooth ، كتطبيق Android وتنفذ خدمة Bluetooth وملفات التعريف في طبقة إطار عمل Android. يستدعي هذا التطبيق طبقة HAL عبر JNI.
JNI
يوجد رمز JNI المرتبط بـ android.bluetooth في packages/apps/Bluetooth/jni . يستدعي رمز JNI طبقة HAL ويستقبل عمليات الاسترجاعات من HAL عند حدوث عمليات Bluetooth معينة ، مثل اكتشاف الأجهزة.
هال
تحدد طبقة تجريد الأجهزة الواجهة القياسية التيتستدعيها واجهات برمجةتطبيقات android.bluetooth وعملية Bluetooth والتي يجب عليك تنفيذها حتى تعمل أجهزة Bluetooth بشكل صحيح. ملف رأس Bluetooth HAL هو hardware/libhardware/include/hardware/bluetooth.h . بالإضافة إلى ذلك ، hardware/libhardware/include/hardware/bt_*.h جميع ملفات hardware/libhardware/include/hardware/bt_*.h .
حزمة بلوتوث
يتم توفير مكدس Bluetooth الافتراضي لك وهو موجود في system/bt . يقوم المكدس بتنفيذ Bluetooth HAL العام وتخصيصه بالامتدادات وتغييرات التكوين.
ملحقات البائعين
لإضافة امتدادات مخصصة وطبقة HCI للتتبع ، يمكنك إنشاء وحدة libbt-vendor وتحديد هذه المكونات.

تنفيذ HAL

يوجد Bluetooth HAL في /hardware/libhardware/include/hardware/bluetooth.h . يحتوي ملف bluetooth.h على الواجهة الأساسية لمكدس Bluetooth ، ويجب عليك تنفيذ وظائفه.

توجد الملفات الخاصة بملف التعريف في نفس الدليل. للحصول على تفاصيل ، راجع مرجع ملف HAL .