Android BlueDroid详细分析

Android BlueDroid详细分析

ID:41153528

大小:2.82 MB

页数:38页

时间:2019-08-17

Android BlueDroid详细分析_第1页
Android BlueDroid详细分析_第2页
Android BlueDroid详细分析_第3页
Android BlueDroid详细分析_第4页
Android BlueDroid详细分析_第5页
资源描述:

《Android BlueDroid详细分析》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、AndroidBlueDroid(一):BlueDroid概述一、名词解释:(有用信息增加中……)BTIF:BluetoothInterfaceBTU:BluetoothUpperLayerBTM:BluetoothManagerBTE:BluetoothembeddedsystemBTA:BlueetoothapplicationlayerCO:calloutCI:callinHF:HandsfreeProfileHH:HIDHostProfileHL:HealthDeviceProfileAV:audiovidioag:audiogatewayar:audio/videoregi

2、strationgattc:GATTclientBLE:二、BlueDroid&&BlueZ1、Android4.2中BlueDroid的框架结构图:(Google官方提供)。(1)、应用程序通过android.bluetoothpackage下的API来调用系统的Bluetooth功能。(2)、应用层空间增加了一个名为Bluetooth的App。它做为系统的bluetooth核心进程而存在。其内部将通过JNI来调用BluetoothHAL层以完成各种蓝牙请求。(3)、BluetoothHAL也属于Android4.2新增模块,它由蓝牙核心规范硬件抽象层和蓝牙应用规范硬件抽象层组成。由于

3、HAL层的隔离作用,上层代码可轻松移植到不同芯片平台。(4)、作为整个蓝牙服务的核心,BluetoothStack模块则由BluetoothApplicationLayer(缩写为BTA)和BluetoothEmbeddedSystem(缩写为BTE)两大部分组成。BTA实现了蓝牙设备管理、状态管理及一些应用规范。而BTE则通过HCI与厂商蓝牙芯片交互以实现了蓝牙协议栈的通用功能和相关协议。另外,BTE还包括一个统一内核接口(GKI),蓝牙芯片厂商可借助GKI快速轻松得移植蓝牙协议栈到其他操作系统或手机平台上。(5)、VendorExtentions(厂商扩展):开发者可以添加自定义扩展

4、以实现厂商特定的模块和组件。(6)、bluedroid整体协议栈架构:整个系统的架构很简单,因为大多的事情都是在Bluedroid层里面做的,上层只管去Call和Callback就是了,这部分我们在后面分析代码做详细分析。2、BlueZ代码架构和Bluedroid类似,BlueZ也是按照标准流程从应用一直走下来,不过两者唯一的区别是BlueZ的DBUS。blueDroid中取出DBUS是代码结构变的更加清晰,看起来跟顺畅。如下图蓝牙代码架构(Google官方提供):AndroidBlueDroid(二):BlueDroid蓝牙开启过程init一、蓝牙开启流程概述,如下图所示:init、e

5、nable和一般的函数调用相同,android上层通过APP-->Native-->JNI-->bluetoothinterface-->bluetoothHCIinterface。HCIinterface中实现了init、set_power、preload相应函数init、enable函数主要实现的功能:(1)、创建:btif_task/BTIF_TASK(2)、初始化BTE(3)、创建:btu_task/BTU_TASK(4)、初始化HCI、串口相关,启动HCI工作主线程:bt_hc_callback,芯片上电、RF参数初始化、蓝牙地址名称相关设定;(5)、创建:bt_hc_work

6、er_thread蓝牙工作主线程,发送接收命令;(6)、初始化蓝牙协议栈;二、initNative函数的的实现这部分主要启动相应sock、协议栈初始化、启动btif_task,监听处理蓝牙接口相关的状态消息。实现流程如下所示。1、应用部分函数调用(从adatper开始)packagesappsBluetoothsrccomandroidbluetoothbtserviceAdapterService.java[java]viewplaincopy1.publicvoidonCreate(){2.super.onCreate();3.if(DBG)debugLog("onC

7、reate");4.mBinder=newAdapterServiceBinder(this);5.mAdapterProperties=newAdapterProperties(this);6.mAdapterStateMachine=AdapterState.make(this,mAdapterProperties);7.mJniCallbacks=newJniCallbacks(mAdapterStateMachine,mAd

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。