首页 理论教育 深度解析Android系统中的蓝牙模块技术

深度解析Android系统中的蓝牙模块技术

时间:2023-06-27 理论教育 版权反馈
【摘要】:在Android系统包含了对蓝牙网络协议栈的支持,这使得蓝牙设备能够无线连接到其他蓝牙设备以交换数据。Android的应用程序框架提供了访问蓝牙功能的API。Android平台的蓝牙系统是基于BlueZ实现的,是通过Linux中一套完整的蓝牙协议栈开源实现。在Android系统的蓝牙模块中,除了内核支持外,还需要有用户空间的BlueZ的支持。Android系统中蓝牙模块的基本层次结构如图9-3所示。

深度解析Android系统中的蓝牙模块技术

在Android系统包含了对蓝牙网络协议栈的支持,这使得蓝牙设备能够无线连接到其他蓝牙设备以交换数据。Android的应用程序框架提供了访问蓝牙功能的API。这些API让应用程序能够无线连接其他蓝牙设备,实现点对点,或点对多的无线交互功能。

Android平台的蓝牙系统是基于BlueZ实现的,是通过Linux中一套完整的蓝牙协议栈开源实现。当前BlueZ被广泛应用于各种Linux版本中,并被芯片公司移植到各种芯片平台上。在Linux 2.6内核中已经包含了完整的BlueZ协议栈,在Android系统中已经移植并嵌入进了BlueZ的用户空间实现,并且随着硬件技术的发展而不断更新。

在Android系统的蓝牙模块中,除了内核支持外,还需要有用户空间的BlueZ的支持。Android系统中蓝牙模块的基本层次结构如图9-3所示。

978-7-111-52203-4-Part03-103.jpg

图9-3 Android蓝牙系统的层次结构

在图9-3所示的结构中,从上到下主要包括Java框架中的BlueTooth类、Android适配库、BlueZ库、驱动程序和协议,这几部分的具体说明如下。

(1)BlueZ库(蓝牙设备管理库)

Android蓝牙设备管理库的路径如下。

978-7-111-52203-4-Part03-104.jpg

可以分别生成库libbluetooth.so、libbluedroid.so和hcidump等众多相关的工具和库。BlueZ库提供了对用户空间蓝牙的支持,在里面包含了主机控制协议HCI以及其他众多内核实现协议的接口,并且实现了所有蓝牙应用模式Profile。

(2)JNI部分(www.xing528.com)

此部分的代码路径如下。

978-7-111-52203-4-Part03-105.jpg

(3)Java框架层

Java框架层的实现代码保存在如下的路径中。

978-7-111-52203-4-Part03-106.jpg

蓝牙的服务部分负责管理并使用底层本地服务,并封装成系统服务。而在android.bluetooth部分中则包含了各个蓝牙平台的API部分,以供应用程序层所使用。

(4)BlueTooth的适配库

BlueTooth适配库的代码路径如下。

system/bluetooth/

此层用于生成库libbluedroid.so以及相关工具和库,能够实现对蓝牙设备的管理,例如蓝牙设备的电源管理。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈