Android Blu eDroid(一):Blu eDroid 概述 一、名词解释:(有用信息增加中… … ) BTI F: Bluetooth Interface BTU : Bluetooth Upper Layer BTM: Bluetooth Manager BTE :Bluetooth embedded system BTA :Blueetooth application layer CO: call out\CI: call in HF : Handsfree Profile HH: HID Host Profile HL: Health Device Profile AV:audio\vidio ag: audio gateway ar: audio/video registration gattc: GATT client BLE: 二、 Blu eDroid && Blu eZ 1、Android 4.2 中 Blu eDroid 的框架结构图:(Google 官方提供)。 (1)、应用程序通过 android.bluetooth package 下的 API 来调用系统的 Bluetooth 功能。 (2)、应用层空间增加了一个名为 Bluetooth 的 App。它做为系统的 bluetooth 核心进程而存在。其内部将通过 JNI 来调用 Bluetooth HAL 层以完成各种蓝牙请求。 (3)、Bluetooth HAL 也属于 Android 4.2 新增模块,它由蓝牙核心规范硬件抽象层和蓝牙应用规范硬件抽象层组成。由于 HAL 层的隔离作用,上层代码可轻松移植到不同芯片平台。 (4)、作为整个蓝牙服务的核心,Bluetooth Stack 模块则由 Bluetooth Application Layer(缩写为 BTA)和 Bluetooth Embedded System(缩写为 BTE)两大部分组成。BTA 实现了蓝牙设备管理、状态管理及一些应用规范。而 BTE 则通过 HCI 与厂商蓝牙芯片交互以实现了蓝牙协议栈的通用功能和相关协议。另外,BTE 还包括一个统一内核接口(GKI),蓝牙芯片厂商可借助 GKI 快速轻松得移植蓝牙协议栈到其他操作系统或手机平台上。 (5)、Vendor Extentions(厂商扩展):开发者可以添加自定义扩展以实现厂商特定的模块和组件。 (6)、bluedroid 整体协议栈架构: 整个系统的架构很简单,因为大多的事情都是在Blu edroid 层里面做的,上层只管去Call 和Callback 就是了,这部分我们在后面分析代码做详细分析。 2、Blu eZ 代码架构 和Blu edroid 类似,Blu eZ 也是按照标准流程从应用一直走下来,不过两者唯一的区别是Blu eZ 的DBUS。blu eDroid 中取出 DBUS 是代码结构变的更加清晰,看起来跟顺畅。如下图蓝牙代码架构(Google 官方提供): Android Blu eDroid(二):Blu eDroid 蓝牙开启过程init 一、蓝牙开启流程概述,如下图所示:...