BlueDroid介绍 【转】

简介: 转自:http://blog.csdn.net/fen_liu/article/details/41213167 [-] 基本结构 代码区 http://www.cnblogs.

转自:http://blog.csdn.net/fen_liu/article/details/41213167

[-]

  1. 基本结构
  2. 代码区


http://www.cnblogs.com/hzl6255/p/3887547.html

自从Android 4.2开始,Android开始使用自己的蓝牙协议栈BlueDroid,而不是bluez

BlueDroid可分为两层:
- BTE: Bluetooth Embedded System
- BTA: Bluetooth Application Layer

BTE实现了核心的蓝牙功能,BTA则与框架的应用程序进行通信

1. 基本结构

下图显示了协议栈的基本结构

bluedroid 

Application framework
framework/base/core/Java/android/bluetooth
这里是app代码,使用android.bluetooth APIs和蓝牙设备交互
其实现原理是通过Binder IPC机制使用蓝牙服务

Bluetooth system service
位于packages/app/Bluetooth,打包为一个Android应用程序(通过JNI与蓝牙协议栈交互)
它在Android框架层实现了蓝牙的服务和Profiles

JNI
有关代码位于packages/apps/Bluetooth/jni下
当进行蓝牙操作时,JNI的代码会调用到HAL层以获取回调

HAL
HAL层定义了android.bluetooth和Bluetooth process calls into的标准接口
其头文件位于hardware/libhardware/include/hardware

bluetooth.h: Contains the HAL for the Bluetooth hardware on the device 
bt_av.h:     Contains the HAL for the advanced audio profile. 
bt_hf.h:     Contains the HAL for the handsfree profile. 
bt_hh.h:     Contains the HAL for the HID host profile 
bt_hl.h:     Contains the HAL for the health profile 
bt_pan.h:    Contains the HAL for the pan profile bt_sock.h: Contains the HAL for the socket profile

Bluetooth stack
蓝牙协议栈,位于external/bluetooth/bluedroid
实现了通用的蓝牙HAL及可配置组件

Vendor extensions
厂商可通过创建libbt-vendor模块来自定义扩展接口和HCI层来方便调试

2. 代码区

如下网址可在线查看相关代码
AndroidXref
external/bluetooth/bluedroid
packages/apps/Bluetooth
hardware/libhardware/include/hardware

github上可进行代码的下载
external_bluetooth_bluedroid
packages_apps_Bluetooth

android_hardware_libhardware

也可以到Android官网去下载
android Git repositories

参考:
<Android BlueDroid>
<
BlueDroid的结构和代码分布>

【作者】 张昺华
【新浪微博】 张昺华--sky
【twitter】 @sky2030_
【facebook】 张昺华 zhangbinghua
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
目录
打赏
0
0
0
0
23
分享
相关文章
如何使用OCR技术批量识别图片中的文字并重命名文件,OCR 技术批量识别图片中的文字可能出现的错误
### 简介 【批量识别图片内容重命名】工具可批量识别图片中的文字并重命名文件,方便高效处理大量图片。然而,OCR 技术面临字符识别错误(如形近字混淆、生僻字识别不佳)、格式错误(段落错乱、换行问题)和语义理解错误等挑战。为提高准确性,建议提升图片质量、选择合适的 OCR 软件及参数,并结合自动校对与人工审核,确保最终文本的正确性和完整性。
621 12
如何使用OCR技术批量识别图片中的文字并重命名文件,OCR 技术批量识别图片中的文字可能出现的错误
|
9月前
|
【LVGL快速入门】LVGL开源框架入门教程之框架使用(二)
【LVGL快速入门】LVGL开源框架入门教程之框架使用(二)
562 1
QT去除QString字符串中空格的方法
QT去除QString字符串中空格的方法
382 0
Linux应用开发基础知识——串口应用编程(十一)
Linux应用开发基础知识——串口应用编程(十一)
388 0
Linux应用开发基础知识——串口应用编程(十一)
RT-Thread记录(十一、I/O 设备模型之UART设备 — 源码解析)
深入理解 RT-Thread I/O 设备模型 — 分析 UART设备源码。
567 5
RT-Thread记录(十一、I/O 设备模型之UART设备 — 源码解析)
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问