安卓12系统中,可以看到有以下两个蓝牙相关的进程:

1、com.android.bluetooth是安卓的蓝牙系统服务,在 Android 框架层实现蓝牙服务和profile。此应用通过 JNI 调用原生蓝牙堆栈。对应的代码在:aosp/packages/apps/Bluetooth目录中。原生的蓝牙堆栈在:aosp/system/bt目录下。该原生的蓝牙堆栈实现了常规蓝牙的HAL,并通过拓展程序和更改profile实现厂家的自定义profile。

2、android.hardware.bluetooth对应的代码在:aosp/hardware/interfaces/bluetooth目录下,定义了蓝牙堆栈与供应商之间的HIDL接口,该系统服务启动时通过dlopen打开第三方蓝牙厂家的蓝牙libsdk库,并调用厂家实现的接口与蓝牙硬件进行通信。

3、蓝牙相关的源码:

a、系统设置蓝牙相关的代码,实现了蓝牙的扫描,连接等:

aosp/packages/apps/Settings/src/com/android/settings/bluetooth

aosp/frameworks/base/packages/SettingsLib/src/com/android/settingslib/bluetooth

b、蓝牙应用框架代码,对应用提供蓝牙api,与蓝牙系统服务通过Binder进行通信:

aosp/frameworks/base/core/java/android/bluetooth

4、参考网站:

蓝牙  |  Android 开源项目  |  Android Open Source Project

https://blog.csdn.net/z755924843/article/details/127631967

Android 蓝牙开发(十)A2DP源码分析_VNanyesheshou的博客-CSDN博客

Android O HIDL的使用例子 -- 蓝牙HCI 服务进程_#include <android/hardware/bluetooth/1.0/ibluetoot_studyhxz的博客-CSDN博客

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐