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/ 主要是蓝牙开启,搜索,配对等

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++层进行通信的

3. Bluez部分,主要包括各个协议的实现,如A2dp,AVRCP,AVDTP,HID,HDP,PAN,DUN以及对BT host的实现,通过该部分向BT Controler部分发送HCI命令,代码分布服下:
/external/bluetooth/bluez

4. BluetDroid部分,主要用于开关蓝牙,芯片上电部分(不属于驱动,可以算是硬件抽象层(HAL)), 代码分布如下:
/system/bluetooth/

5. kernel部分,主要包括RFCOMM,L2CAP等协议以及HCI的实现,代码分布如下:
/kernel/net/bluetooth/

6. driver部分,该部分代码还真没了解过,代码分布:
/kernel/drivers/bluetooth/
另外,driver部分和具体芯片密切相关,有时在下面的目录下也会有:
/vendor/
/device/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

flybirding10011

谢谢支持啊999

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值