蓝牙系统驱动

作者: 傀儡世界 | 来源:发表于2017-03-14 20:51 被阅读64次

蓝牙系统从上到下主要包括Jva框架中的Bluetooth类,Android适配库,BlueZ库,驱动程序和协议

Paste_Image.png Paste_Image.png

(1)BlueZ库
libbluetooth.so,libbluedroid.so等库提供对用户空间蓝牙的支持,包含主机控制协议HCI以及其他内核实现协议的接口,实现了所有蓝牙应用模式Profile
(2)蓝牙的JNI部分
framework/base/core/jni/
(3)java框架层
frameworks/base/core/java/android/bluetooth
frameworks/base/service/....
(4)Bluetooth的适配库
实现对蓝牙设备的管理

蓝牙模块
初始化蓝牙
通过hciattach进行初始化蓝牙设备
蓝牙服务
init.rc配置

低功耗蓝牙协议栈详解
从android4.2版本开始,从BlueZ换成BlueDroid,4.3版本开始提供了蓝牙4.0BLE,讲解BLE基础知识
基础

Paste_Image.png

API详解
(1)本地蓝牙适配器设备
framework/base/core/java/android/bluetooth/BluetoothAdapter.java
发现其他蓝牙设备,查询匹配的设备集
使用一个已知蓝牙地址初始化蓝牙设备BluetoothDevice
创建一个能够监听其他设备通信的类BluetoothSocket
(2)请求远程蓝牙设备
framework/base/core/java/android/bluetooth/BluetoothDevice.java
请求获取远程蓝牙设备的连接
查询获取远程蓝牙设备的名称,地址,类和连接状态
(3)实现客户端的低功耗蓝牙规范

Android中的BlueDroid
Android系统BlueDroid的架构
Bluetooth Embedded System:实现BT(蓝牙)的核心功能
Bluetooth Application Layer:用于与Android Framework交互

Paste_Image.png

Applicaiont Framework层分析
实现源码:framework/base/core/java/android/bluetooth/
实现BT service和各种profile
BluetoothA2dp.java:connect会调用System Service层A2dpService.java
Bluetooth System Service层
实现源码:packages/app/Bluetooth
A2dpService.java:connect会通过JNI调用到HAL层
JNI层
实现源码:packages/app/bluetooth/jni
com_android_bluetooth_a2dp.cpp:connectA2dpNative
HAL硬件抽象层
定义Bluetooth APIs和BT process调用的标准接口
BT HAL的头文件:hardware/libhardware/include/hardware/bluetooth.h bt_*.h

相关文章

  • 蓝牙系统驱动

    蓝牙系统从上到下主要包括Jva框架中的Bluetooth类,Android适配库,BlueZ库,驱动程序和协议 (...

  • 日常

    系统架构:1.linux内核层(为设备各种硬件提供底层驱动,如显示驱动,音频驱动,蓝牙驱动等) ...

  • 小米笔记本蓝牙失效问题

    方案1 先到设备管理器去卸载蓝牙及下面的蓝牙设备 驱动到小米官网下载蓝牙驱动 https://www.mi.com...

  • 【20220524】

    早上打开电脑,蓝牙键盘又连接不上了。只能把蓝牙驱动又修复一次。好麻烦,最后为了彻底解决这个问题,我重装了系统,但遗...

  • Win10无法打开蓝牙解决方案

    问题描述:打开设置-->蓝牙:未发现打开蓝牙开关;或者在操作中心中未发现蓝牙图标问题原因:没有安装或者更新蓝牙驱动...

  • 认识Android

    认识Android Android四层架构 : Linux内核层 --- 底层驱动 显卡,蓝牙,声卡驱动 电源管...

  • 解决Makeblock童心制物慧编程在macbook air系统

    若macbook air系统慧编程无法识别光环板 蓝牙适配器和USB数据线,反复提示再次下载驱动,串口不支持的情况...

  • 黑苹果10.15.6 dw1560 蓝牙驱动方法

    找回丢失的DW1560/Brcm94352Z驱动Mojave系统下的蓝牙会失效,截止到目前的解决方法是:将文件Br...

  • 蓝牙设备连接----eg:蓝牙打印----(蓝牙连接设备)

    蓝牙实现打印实现 蓝牙连接外设,通过系统框架实现,步骤如下:判断是否打开蓝牙——> 搜索蓝牙设备——>连接蓝牙设备...

  • 关于事件处理的负责制的讨论

    缘由 做一个蓝牙方面的 APP,需要在系统进入休眠之前关闭蓝牙,在系统唤醒之后开启蓝牙。是否由这个系统事件来触发蓝...

网友评论

    本文标题:蓝牙系统驱动

    本文链接:https://www.haomeiwen.com/subject/vrsrgttx.html