整个bluedroid可以分为两大模块:BTIF,BTE
BTIF:提供bluedroid对外的接口;作为bluedroid与上层的framework提供interface。所以它处于bluedroid的顶层。
BTE:bluedroid的内部处理,又细分为BTA,BTU,BTM和HCI;为芯片相关的ops
BTA:bluedroid中各profile的逻辑实现和处理;提供各种profile,我们可以将APP的打开当做一个服务,一起服务至少由一个profile构成,而APP与这个profile之间的调用又要通过interface,所以一个interface可有一个或者多个profile构成。
比喻、蓝牙音箱要connect的时候,会首先调用btif提供的bluedoroid的interface(btif_av.c),然后该interface会调用bta层的profile(bta_av_api.c)。
BTU:承接BTA与HCI
BTM:蓝牙配对与链路管理
HCI:读取或写入数据到蓝牙hw;主要抽象了BTE的ops,将BTE的ops抽象成bluedroid的接口。
蓝牙 - HCI介绍_蓝牙hci_夜流冰的博客-优快云博客
参考文献: