android系统在4.2之前都是用的是内核层的bluez蓝牙协议栈,然后在4.2系统以后统一用bluedroid的抽象层协议栈,这样能够迅速的移植相关的安卓上层代码到新的机型,而不受制于硬件蓝牙芯片的不同。
现在介绍4.2之前的蓝牙协议栈(也为自己分析)。
Android蓝牙系统分为四个层次,内核层、BlueZ库、BlueTooth的适配库、BlueTooth的JNI部分、Java框架层、应用层。下面先来分析Android的蓝牙协议栈。 Android的蓝牙协议栈采用BlueZ来实现,BlueZ分为两部分:内核代码和用户态程序及工具集。 内核代码主要由BlueZ核心协议和驱动程序组成;蓝牙协议实现在内核源代码net/bluetooth中,驱动程序位于内核源代码目录driver/bluetooth中。用户态程序及工具集主要包括应用程序接口和BlueZ工具集,位于Android源代码目录externel/bluetooth(注:Android版本不一样,有的在externel/bluez目录下)中。 1、蓝牙协议栈 蓝牙协议栈的体系结构由底层硬件模块、中间协议层和高端应用层三部分组成。 一、底层硬件模块 组成: 链路管理协议(Link ManagerProtocol,LMP); 基带(Base Ba |