BlueDroid介绍 【转】

简介:

转自: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博客园博客,原文链接:http://www.cnblogs.com/sky-heaven/p/6029566.html,如需转载请自行联系原作者

相关文章
|
存储 算法 安全
【密码学】非对称加密算法 - ECDH
由于 ECC 密钥具有很短的长度,所以运算速度比较快。到目前为止,对于 ECC 进行逆操作还是很难的,数学上证明不可破解,ECC 算法的优势就是性能和安全性高。实际应用可以结合其他的公开密钥算法形成更快、更安全的公开密钥算法,比如结合 DH 密钥形成 ECDH 密钥协商算法,结合数字签名 DSA 算法组成 ECDSA 数字签名算法。ECDH算法常常用来进行密钥的协商,协商好密钥后,用来解决上面的密钥分配问题,将对称加密的密钥安全的传到对端设备。算法加密/解密数字签名密钥交换RSA✅✅✅❌。
2562 0
蓝牙HID协议笔记【转】
蓝牙HID协议笔记 转自:http://blog.sina.com.cn/s/blog_69b5d2a50101emll.html 1.概述     The Human Interface Device (HID)定义了蓝牙在人机接口设备中的协议、特征和使用规程。
3900 0
|
Linux 网络安全
树莓派开发笔记(十一):蓝牙的使用,BlueZ协议(双树莓探测rssi并通过蓝牙互传获取的rssi信号强度)
树莓派开发笔记(十一):蓝牙的使用,BlueZ协议(双树莓探测rssi并通过蓝牙互传获取的rssi信号强度)
树莓派开发笔记(十一):蓝牙的使用,BlueZ协议(双树莓探测rssi并通过蓝牙互传获取的rssi信号强度)
|
Linux 数据安全/隐私保护 Windows
更换(Pypi)pip源到国内镜像
pip国内的一些镜像 阿里云 http://mirrors.aliyun.com/pypi/simple/ 中国科技大学 https://pypi.mirrors.
211105 2
|
编解码 算法 数据格式
【经典蓝牙】蓝牙 A2DP协议分析
A2DP(Advanced Audio Distribution Profile)是蓝牙高音质音频传输协议, 用于传输单声道, 双声道音乐(一般在 A2DP 中用于 stereo 双声道) , 典型应用为蓝牙耳机。         A2DP旨在通过蓝牙连接传输高质量的立体声音频流。它使用的基本压缩算法是SBC(Sub-Band Coding)来减小音频数据的大小,同时保持高音质,SBC压缩虽然效率较低,但是是必须支持的基本备用方案。A2DP还支持其他高级编解码器,例如AAC、aptX和LDAC,这些编解码器比SBC提供更好的音质,但这些编解码器的支持取决于设备本身的支持情况。
1468 0
【经典蓝牙】蓝牙 A2DP协议分析
|
编解码 语音技术
【经典蓝牙】 蓝牙HFP层协议分析
HFP(Hands-Free Profile), 是蓝牙免提协议, 可以让蓝牙设备对对端蓝牙设备的通话进行控制,例如蓝牙耳机控制手机通话的接听、 挂断、 拒接、 语音拨号等。HFP中蓝牙两端的数据交互是通过定义好的AT指令来通讯的
1468 0
【经典蓝牙】 蓝牙HFP层协议分析
|
11月前
|
存储 网络协议 API
4-FreeRTOS队列、互斥、信号量
4-FreeRTOS队列、互斥、信号量
|
11月前
|
开发工具 git
git 对word 进行版本控制
git 对word 进行版本控制
289 0
|
物联网 Android开发
Android 蓝牙BLE开发从官方源码demo开始(二)
Android 蓝牙BLE开发从官方源码demo开始(二)
|
传感器 物联网 定位技术
Android 12 蓝牙适配
Android 12 蓝牙适配
823 0
Android 12 蓝牙适配