蓝牙bluetooth之二-源码分布
来源:互联网 发布:linux下xampp mysql 编辑:程序博客网 时间:2024/06/08 06:20
安卓6.0下源码分布情况如下:
1.核心服务
frameworks/base/services/core/java/com/android/server/BluetoothBluetoothManagerService.java BluetoothService.java
2. application & framework
各种profile所在的目录
packages/apps/Bluetooth/src/com/android/bluetooth/a2dp/ btservice/ hfp/ IObexConnectionHandler.java ObexServerSockets.java pbap/ SignedLongLong.javaavrcp/ gatt/ hfpclient/ map/ opp/ sap/ util/BluetoothObexTransport.java hdp/ hid/ ObexRejectServer.java pan/ sdp/ Utils.java比如hfpclient profile目录的内容如下:
packages/apps/Bluetooth/src/com/android/bluetooth/hfpclient/HeadsetClientHalConstants.java HeadsetClientService.java HeadsetClientStateMachine.java基本上每个profile的命名方式和此类似,都有statemachine和service两个类来管理profile的状态并提供服务。
各种profile对应的jni
packages/apps/Bluetooth/jni/Android.mk com_android_bluetooth_btservice_AdapterService.cpp com_android_bluetooth_hfp.cppcom_android_bluetooth_a2dp.cpp com_android_bluetooth_gatt.cpp com_android_bluetooth_hid.cppcom_android_bluetooth_a2dp_sink.cpp com_android_bluetooth.h com_android_bluetooth_pan.cppcom_android_bluetooth_avrcp_controller.cpp com_android_bluetooth_hdp.cpp com_android_bluetooth_sdp.cppcom_android_bluetooth_avrcp.cpp com_android_bluetooth_hfpclient.cpp
蓝牙各种服务
packages/apps/Bluetooth/src/com/android/bluetooth/btservice/AbstractionLayer.java AdapterProperties.java AdapterState.java Config.java ProfileService.java AdapterApp.java AdapterService.java BondStateMachine.java JniCallbacks.java RemoteDevices.java
framework框架层
/frameworks/base/core/java/android/bluetooth/BluetoothA2dp.java BluetoothHeadset.java IBluetoothGattServerCallback.aidlBluetoothA2dpSink.java BluetoothHealthAppConfiguration.aidl IBluetoothHeadset.aidlBluetoothActivityEnergyInfo.aidl BluetoothHealthAppConfiguration.java IBluetoothHeadsetClient.aidlBluetoothActivityEnergyInfo.java BluetoothHealthCallback.java IBluetoothHeadsetPhone.aidlBluetoothAdapter.java BluetoothHealth.java IBluetoothHealth.aidlBluetoothAssignedNumbers.java BluetoothInputDevice.java IBluetoothHealthCallback.aidlBluetoothAudioConfig.aidl BluetoothInputStream.java IBluetoothInputDevice.aidlBluetoothAudioConfig.java BluetoothManager.java IBluetoothManager.aidlBluetoothAvrcpController.java BluetoothMap.java IBluetoothManagerCallback.aidlBluetoothAvrcp.java BluetoothMasInstance.java IBluetoothMap.aidlBluetoothClass.java BluetoothOutputStream.java IBluetoothPan.aidlBluetoothDevice.aidl BluetoothPan.java IBluetoothPbap.aidlBluetoothDevice.java BluetoothPbap.java IBluetoothProfileServiceConnection.aidlBluetoothDevicePicker.java BluetoothProfile.java IBluetoothSap.aidlBluetoothGattCallback.java BluetoothSap.java IBluetoothStateChangeCallback.aidlBluetoothGattCallbackWrapper.java BluetoothServerSocket.java leBluetoothGattCharacteristic.java BluetoothSocket.java package.htmlBluetoothGattDescriptor.java BluetoothUuid.java SdpMasRecord.javaBluetoothGatt.java IBluetoothA2dp.aidl SdpMnsRecord.javaBluetoothGattServerCallback.java IBluetoothA2dpSink.aidl SdpOppOpsRecord.javaBluetoothGattServer.java IBluetooth.aidl SdpPseRecord.javaBluetoothGattService.java IBluetoothAvrcpController.aidl SdpRecord.javaBluetoothHeadsetClientCall.aidl IBluetoothCallback.aidl SdpSapsRecord.javaBluetoothHeadsetClientCall.java IBluetoothGatt.aidlBluetoothHeadsetClient.java IBluetoothGattCallback.aidl
蓝牙设置apk
系统默认自带
packages/apps/Settings/src/com/android/settings/bluetooth/BluetoothDevicePreference.java BluetoothNameDialogFragment.java BluetoothPermissionRequest.java DevicePickerActivity.java DockService.java Utf8ByteLengthFilter.javaBluetoothDiscoverableEnabler.java BluetoothPairingDialog.java BluetoothProgressCategory.java DevicePickerFragment.java LocalBluetoothPreferences.java Utils.javaBluetoothDiscoveryReceiver.java BluetoothPairingRequest.java BluetoothSettings.java DeviceProfilesSettings.java RequestPermissionActivity.javaBluetoothEnabler.java BluetoothPermissionActivity.java DeviceListPreferenceFragment.java DockEventReceiver.java RequestPermissionHelperActivity.java
BT HAL层
hardware/libhardware/include/hardwarebt_av.h bt_gatt_client.h bt_gatt_server.h bt_hf_client.h bt_hh.h bt_mce.h bt_rc.h bt_sock.hbt_common_types.h bt_gatt.h bt_gatt_types.h bt_hf.h bt_hl.h bt_pan.h bt_sdp.h
新的安卓不再使用legacy目录下的HAL的代码
BT协议栈
system/bt/Android.mk bta btif conf doc gki include MODULE_LICENSE_APACHE2 osi stack tools utilsaudio_a2dp_hw btcore CleanSpec.mk device embdrv hci main NOTICE profile test udrv vnd
厂商扩展层
hardware/broadcom/libbtAndroid.mk conf gen-buildcfg.sh include src vnd_buildcfg.mk
linux kernel说明
google和博通写了bluedroid而弃用了linux的bluez,内核通蓝牙相关的只有tty和器件的驱动,相对而言kernel角色基本不重要了,没有和协议栈有关系的了。
蓝牙测试
使用bdt进行信令测试,调试时需要使用非信令测试
协议栈层调试btsnoop工具
1 0
- 蓝牙bluetooth之二-源码分布
- Android开发之蓝牙(Bluetooth)---源码目录
- Android开发之蓝牙(Bluetooth)---源码目录
- Android深入浅出系列之Bluetooth—蓝牙操作(二)
- Android深入浅出系列之Bluetooth—蓝牙操作(二)
- Android深入浅出系列之Bluetooth—蓝牙操作(二)
- Android深入浅出系列之Bluetooth—蓝牙操作(二)
- Android深入浅出系列之Bluetooth—蓝牙操作(二)
- android -- 蓝牙 bluetooth (二) 打开蓝牙
- android -- 蓝牙 bluetooth (二) 打开蓝牙 .
- android -- 蓝牙 bluetooth (二) 打开蓝牙
- android -- 蓝牙 bluetooth (二) 打开蓝牙
- android -- 蓝牙 bluetooth (二) 打开蓝牙
- android -- 蓝牙 bluetooth (二) 打开蓝牙
- android -- 蓝牙 bluetooth (二) 打开蓝牙
- 兔子-蓝牙 bluetooth (二) 打开蓝牙
- android -- 蓝牙 bluetooth (二) 打开蓝牙
- android -- 蓝牙 bluetooth (二) 打开蓝牙
- Reason of PermGen elimination in JDK8
- 51Nod-1298-圆与三角形
- 提示IFCONFIG命令不存在解决办法
- C++ 的枚举和宏
- 学习Maven---通过Shell命令行创建Maven项目
- 蓝牙bluetooth之二-源码分布
- [译]MQTT 通配符
- 静态变量赋初值只在函数第一次调用时起作用,若没有赋初值,系统自动赋0
- IOS 数组学习以及相关操作
- ajaxfileupload.js实现文件异步上传
- iOS基础:HTTP请求理解
- openSNS(V2版本) 用户身份切换可能产生的bug以及正规流程
- Java Web架构
- 音频波浪线