蓝牙

从 Android 13 开始,Bluetooth 是可选的 Mainline 模块。Bluetooth Mainline 模块旨在为所有 Android 用户提供一致、优质的蓝牙体验。

设计初衷

Bluetooth 模块旨在为合作伙伴、用户和应用开发者提供优质体验。我们将通过以下几种关键方式实现这一目标:

  1. 更快、更频繁地发布更新,并推出新功能、修复 bug,以及提供互操作性修复及安全修复。
  2. 减少合作伙伴的重复性工作
    1. 每年减少对代码库进行衍合的开销。
    2. 减少将 OTA 发布到旧设备的开销。
  3. 减少碎片化,并为应用开发者和用户打造一致体验
  4. 提高 Android 生态系统中的全球安全性。有很多 Android 安全漏洞都涉及到蓝牙。

软件包格式

该软件包是一个 APEX,包含 Bluetooth APK(目前在 packages/modules/Bluetooth/android/app 中定义)、我们的原生库(libbluetooth.solibbluetooth_jni.so)、API(在 packages/modules/Bluetooth/framework/java/android/bluetooth 下)以及 HIDL 接口。

模块边界

Mainline Bluetooth 模块架构

图 1. Bluetooth 模块边界

我们正在将所有现有代码库迁移到 system/bt 下的单个代码库中。 图 1 表示将构成我们的模块的当前目录。

依赖项

Bluetooth 模块拥有以下各项的依赖项:

  • 将清理的传入和传出 @hide API 使用情况
  • Bluetooth APK、libbluetooth.solibbluetooth_jni.so 所需的库