Android系統藍牙模塊

Android系統的源碼中藍牙部分的分佈式這樣的:
1. App部分主要包括OPP和PBAP以及HFP,固然還有settings部分,代碼分佈以下:
(1) /packages/app/Bluetooth/src/com/android/bluetooth/opp
(2) /packages/app/Bluetooth/src/com/android/bluetooth/pbap
(3) /packages/app/Phone/src/com/android/phone/ 中和BT相關的部分,主要是HFHS打電話相關的
(4) /packages/app/Settings/src/com/android/settings/bluetooth/ 主要是藍牙開啓,搜索,配對等java

2. Framework部分主要包括BluetoothAdapter,BluetoothService,BluetoothEventLoop,BluetoothA2dpService等核心類,代碼分佈以下:
(1)/frameworks/base/core/java/android/server/ 包含BluetoothService,BluetoothEventLoop等核心類,可是並無向用戶應用程序提供接口,屬於系統的類。
(2)/frameworks/base/core/java/android/bluetooth 包含了BluetoothAdapter, BluetoothSocket, BluetoothServerSocket等一系列類,這些類是系統嚮應用程序提供的接口,編寫藍牙相關的應用程序時會用到這些類,檢查BT是否打開,搜索設備等等。若是編寫藍牙應用程序,須要熟悉該部分類的功能。
(3) /frameworks/base/core/jni/ 中包含Bluetooth相關的文件,如 android_server_BluetoothService.cpp 該部分主要是java層和c/c++層進行通訊的android

3. Bluez部分,主要包括各個協議的實現,如A2dp,AVRCP,AVDTP,HID,HDP,PAN,DUN以及對BT host的實現,經過該部分向BT Controler部分發送HCI命令,代碼分佈服下:
/external/bluetooth/bluezc++

4. BluetDroid部分,主要用於開關藍牙,芯片上電部分(不屬於驅動,能夠算是硬件抽象層(HAL)), 代碼分佈以下:
/system/bluetooth/app

5. kernel部分,主要包括RFCOMM,L2CAP等協議以及HCI的實現,代碼分佈以下:
/kernel/net/bluetooth/分佈式

6. driver部分,該部分代碼還真沒了解過,代碼分佈:
/kernel/drivers/bluetooth/
另外,driver部分和具體芯片密切相關,有時在下面的目錄下也會有:
/vendor/
/device/oop

相關文章
相關標籤/搜索