从 Android 13 开始,Bluetooth 是可选的 Mainline 模块。Bluetooth Mainline 模块旨在为所有 Android 用户提供一致、优质的蓝牙体验。
设计初衷
Bluetooth 模块旨在为合作伙伴、用户和应用开发者提供优质体验。我们将通过以下几种关键方式实现这一目标:
- 更快、更频繁地发布更新,并推出新功能、修复 bug,以及提供互操作性修复及安全修复。
- 减少合作伙伴的重复性工作
- 每年减少对代码库进行衍合的开销。
- 减少将 OTA 发布到旧设备的开销。
- 减少碎片化,并为应用开发者和用户打造一致体验
- 提高 Android 生态系统中的全球安全性。有很多 Android 安全漏洞都涉及到蓝牙。
软件包格式
该软件包是一个 APEX,包含 Bluetooth APK(目前在 packages/modules/Bluetooth/android/app
中定义)、我们的原生库(libbluetooth.so
和 libbluetooth_jni.so
)、API(在 packages/modules/Bluetooth/framework/java/android/bluetooth
下)以及 HIDL 接口。
模块边界
图 1. Bluetooth 模块边界
我们正在将所有现有代码库迁移到 system/bt
下的单个代码库中。
图 1 表示将构成我们的模块的当前目录。
依赖项
Bluetooth 模块拥有以下各项的依赖项:
- 将清理的传入和传出
@hide
API 使用情况 - Bluetooth APK、
libbluetooth.so
和libbluetooth_jni.so
所需的库