广州建站外包公司历史长,西安注册公司官网,自己电脑做服务器网站吗,小程序商城的服务哪家好概述
fluoride 协议栈在整个软件框架中作为一个中间件的角色#xff0c;向上对接APP#xff0c;向下对接蓝牙芯片。fluoride采用C语言实现#xff0c;与APP(Jave)通信采用JNI机制#xff1b;与蓝牙芯片通信使用HCI硬件接口#xff08;HCI软件协议参考蓝牙核心规范#x…概述
fluoride 协议栈在整个软件框架中作为一个中间件的角色向上对接APP向下对接蓝牙芯片。fluoride采用C语言实现与APP(Jave)通信采用JNI机制与蓝牙芯片通信使用HCI硬件接口HCI软件协议参考蓝牙核心规范同时fluoride还实现了蓝牙协议栈中的Host层蓝牙应用的profile设备管理等等。
构建角度
android 7.0之前采用make(Android.mk)方式构建因效率太低引入了ninja和kati来编译Ninja的配置文件就是Android.bpAndroid系统使用Blueprint和Soong工具来解析Android.bp转换生成ninja文件在当前的Android构建系统中一部分采用了ninja一部分采用了make的方式。因ninja网上资料较多此处不做过多介绍可自行查阅资料。 通过查看源码中的Android.bp梳理出框架如下
软件角度
软件上fluoride 分为4层bt interface、bt application、bt host、hci。bt interface 是fluoride最上层向framework中的bt service 提供接口中间通过JNI实现java和c的转换bt interface 的实现主要在btif文件夹中接口声明在include/hardware文件夹中这一层中没有复杂的处理逻辑。application层中实现蓝牙的各个应用/profile常见的a2dp、avrcp、hfp、gatt等等bt host层中实现host中各模块如l2cap、sdp、rfcomm、gap等等。hci层实现hci 包的拆包/组包数据接收/发送。fluoride软件架构大致如下 在每个模块内部大多采用API状态机事件处理数据收发的框架在后续各个模块中将做详细描述 接下来的一系列文章将从上至下的详细介绍各个模块。