LHDC全称Low-Latency Hi-Definition Audio Codec,是一种高音质蓝牙编解码方案,由台湾厂商 Savitech 盛微先进科技开发。先看下介绍
这块不涉及音频,只有蓝牙,因为音频的codec是由台湾厂商 Savitech 盛微先进科技开发的,简单了解下Android的蓝牙架构,我们的修改主要在协议栈这块即Bluedroid,上层只是设置相关参数。
BlueDroid主要分为3个部分:BTIF, BTA, Stack
BTIF:作为bluedroid与上层java framework的通道,提供bluedroid对外的接口,提供所有Bluetooth.apk需要的API
BTA:提供各种profile的实现和处理
Stack:协议实现与连接管理
BTE:提供具体芯片相关的fops
BTU:承接BTA与HCI
BTM:蓝牙配对与链路管理
HCI:读取或写入数据到蓝牙hw
主要是BTIF (Bluetooth Profile Interface)
作为bluedroid与上层java framework的通道,提供了操作接口.即上述设置相关参数的实现,这里面有和Bluetoothdevice交互的使用,应该是协商传输协议,这块没特意跟
Bluetooth Profile Interface在Bluetooth Application task (BTA)和JNI层之间充当了胶水层的角色,对上层(JNI)提供了所有profile功能性的接口。这一层上有一个Bluetooth Interface Instance,所有Profile的操作函数都注册在其中(GAP, AV, DM, PAN, HF,HH, HL, Storage, Sockets)。Client应用通过操作这个Instance来操作Profile。
Stack中a2dp增加了相关协议的接口,其目录下还有如gatt hid btm的实现,这块应该是开源协议栈,所以我门也用开源patch
其实现在external下Savitech 提供的so库(提供codec),这块就有点像实现洋大人指定的协议了 无所吊慰
开源patch按需打进去就行了,值得注意的是高通平台的蓝牙协议栈使用在vender目录下,不在system下,比aosp要精简点,针对特定平台的