Android 7.0 bluetooth introduction

  • Android提供了一个默认的蓝牙协议栈-BlueDroid,其被分为蓝牙嵌入式系统(BTE)和蓝牙应用(BTA)两层。BTE实现了蓝牙规格的核心功能,BTA实现了与Android框架层的通信。
  • 蓝牙系统服务通过JNI与蓝牙协议栈进行通信,通过Binder IPC与应用层进行通信。系统服务给开发者提供了各种蓝牙profile的访问。下图为蓝牙协议在Android系统的总体架构图。


  • 应用框架层

代码目录为frameworks/base/core/java/android/bluetooth。

使用android.bluetooth相关的API和蓝牙硬件进行交互,内部是通过Binder IPC机制来调用bluetooth进程。

  • 蓝牙系统服务

该层实际上被打包成一个system APP(Bluetooth.apk),其在Android框架层实现了蓝牙的service和profiles,并通过JNI调用HAL层。

代码目录为packages/apps/Bluetooth。
  • JNI

代码目录为packages/apps/Bluetooth/jni。

JNI层代码调用到HAL层,并在蓝牙底层发生某些动作(如发现设备)的时候,接受HAL层的回调。

  • 硬件抽象层

该层定义了android.bluetooth API和蓝牙进程需要使用的标准接口,只有实现这些接口才能确保蓝牙硬件正常工作。

代码目录为hardware/libhardware/include/hardware。
  • 蓝牙协议栈

该层实现了通用的蓝牙HAL接口,并且可以进行客制化的扩展和配置。

代码目录为system/bt。

  • 供应商扩展

该层专为蓝牙芯片供应商设计。供应商可以通过创建libbt-vendor.so并指定这些模块,来添加自定义扩展和HCI层调试。








  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值