写在前面:
本文的代码结构基于Android 12(android-12.0.0_r34).
结构
应用层代码
在aosp中Settings中的蓝牙代码属于上层的应用层代码, 通过调用android.bluetooth中的api来实现功能: 位于packages/apps/Settings/src/com/android/settings/bluetooth/下
蓝牙系统服务
packages/apps/Bluetooth/下定义了蓝牙service和profile, 该系统服务被打包为一个Android app.
frameworks层
frameworks/base/core/java/android/bluetooth/下定义了一系列管理蓝牙的功能.
JNI
JNI用于调用蓝牙协议栈, 位于packages/apps/Bluetooth/jni
蓝牙协议栈
协议栈的实现位于system/bt下.
zabbits