蓝牙是从 Android 13 开始的可选 Mainline 模块。蓝牙 Mainline 模块旨在为所有 Android 用户提供一致、高品质的蓝牙体验。
动机
蓝牙模块背后的主要动机是为合作伙伴、用户和应用开发者提供高品质的体验。我们将通过以下几个关键方式实现这一目标:
- 通过新功能、错误和互操作性修复以及安全修复,更快、更频繁地发布更新。
- 减少合作伙伴的重复性工作
- 减少每年重新调整代码库基线的开销。
- 减少向旧版设备推出 OTA 的开销。
- 减少碎片化,为应用开发者和用户创造一致的体验
- 提高 Android 生态系统内的全局安全性。Android 安全漏洞很大一部分与蓝牙有关。
软件包格式
该软件包是一个 APEX,其中包含蓝牙 APK(当前在 packages/modules/Bluetooth/android/app
中定义)、我们的原生库(libbluetooth.so
和 libbluetooth_jni.so
)、我们的 API(位于 packages/modules/Bluetooth/framework/java/android/bluetooth
下)以及我们的 HIDL 接口。
模块边界
图 1. 蓝牙模块边界
我们正在将所有现有代码库迁移到 system/bt
下的单个代码库中。图 1 显示了将构成我们模块的当前目录。
依赖项
蓝牙模块具有以下依赖项
- 传入和传出的
@hide
API 用法将被清理 - 蓝牙 APK、
libbluetooth.so
和libbluetooth_jni.so
所需的库