蓝牙

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

动机

蓝牙模块背后的主要动机是为合作伙伴、用户和应用开发者提供高品质的体验。我们将通过以下几个关键方式实现这一目标:

  1. 通过新功能、错误和互操作性修复以及安全修复,更快、更频繁地发布更新。
  2. 减少合作伙伴的重复性工作
    1. 减少每年重新调整代码库基线的开销。
    2. 减少向旧版设备推出 OTA 的开销。
  3. 减少碎片化,为应用开发者和用户创造一致的体验
  4. 提高 Android 生态系统内的全局安全性。Android 安全漏洞很大一部分与蓝牙有关。

软件包格式

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

模块边界

Mainline Bluetooth module architecture

图 1. 蓝牙模块边界

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

依赖项

蓝牙模块具有以下依赖项

  • 传入和传出的 @hide API 用法将被清理
  • 蓝牙 APK、libbluetooth.solibbluetooth_jni.so 所需的库