2026.2
撰稿 | 张大圣
安卓平台最初使用linux平台原生协议栈Bluez,通信效率和dbus等接口封装无法适应安卓发展,由博通操刀,定制bluedroid协议栈。蓝牙那些事,前传一文讲完。
可以参考蓝牙框架对照岗位所在的层次蓝牙岗位还香吗?

整体android的蓝牙框架浑然一体,层次清晰;apk和framework之间Binder通信,HIDL层及以上部分实现归一化;语言跨度:应用层部分使用java实现,Native层是java转C++,然后直接调用C接口。
手机厂商只需要移植芯片厂的HCI硬件接口层驱动即可,如高通平台的libbt-vendor.so。各层次的关键作用如下:
设置apk构建UI操作
蓝牙apk实现蓝牙profile
HAL层接口java层转C层
bluedroid实现蓝牙protocol
HIDL层隔离供应商实现
vendor Soc供应商对接芯片层
硬件模组蓝牙芯片供应商提供
蓝牙协议原文下载链接:上新啦,新增蓝牙le audio全套,wifi,苹果Airdrop资料包105+
早起的蓝牙协议栈bluedroid升级为Fluoride,而Fluoride直译是氟化物,特点就是稳定,全面优化蓝牙性能;

再对照下bluez框架,层次结构也比较清晰,而且对ubuntu平台专门深度定制,明显特点是DBus接口,socket通信,依赖三方库:
适配的DBus框架
部分profile需要三方库
profile和protocol用户实现
链路内核层实现
vendor Soc供应商提供
硬件模组蓝牙芯片供应商提供






从日常使用场景,HFP打电话、A2DP听音乐、AVRTC控制和BLE低功耗蓝牙的使用频率最高;最初的车机系统采用嵌入式系统,协议栈也是各家车厂定制,PBAP,MAP使用频率也比较高;但随着车机android化,而android同时支持audio sink和HF功能后,车机系统也逐步安卓化;SAP功能也随着车机标配esim功能而退出历史舞台。另一个平台类似就是智能电视。
android平台上新增的蓝牙功能也挺多,高通的spit A2DP将音乐音频直接切换到audio音频通路,而不再需要从AudioFlinger一包包将数据通过协议栈发给射频,而是像电话的sco数据一样,由DSP直接对接controller,蓝牙stack只负责发送控制信息。
关注哈
往期文章
蓝牙那些事,蓝牙设备类型CoD和GATT外观,你的蓝牙长什么样