Bluetooth HIDL与之前版本的变化

Android O引入HIDL以实现蓝牙与底层硬件的解耦。本文对比了HIDL引入前后蓝牙模块的交互方式,分析了HIDL如何简化Bluedroid与硬件的交互,并阐述了HIDL对Google在代码管理和硬件隔离上的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android O引入了HIDL的结构。本文不讲HIDL的实现细节。本文通过介绍蓝牙模块使用HIDL前后之间的差别,搞明白HIDL的设计思想。

蓝牙与底层的交互

  • 打开并配置transport layer(UART, USB等)。
  • 上电
  • 下载firmware patch
  • 配置firmware相关参数
  • LPM(Low Power Management)相关配置(蓝牙工作时,始终要用到lmp的功能)
  • 蓝牙收发数据时,transport layer(H4, BCSP等)的拆包和组包工作。

引入HIDL之前,bluedroid与底层相关的代码

主要的代码在system/bt/hci/src/下面
Bluedroid之前的代码(Android N及之前)已经对具体芯片相关的代码做了一套统一的接口。

bt/hc/src/vendor.c

static const bt_vendor_callbacks_t lib_callbacks = {
  sizeof(lib_callbacks),
  firmware_config_cb,
  sco_config_cb,
  low_power_mode_cb,
  sco_audiostate_cb,
  buffer_alloc_cb,
  buffer_free_cb,
  transmit_cb,
  epilog_cb,
  a2dp_offload_cb
};

static const
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值