Bluedroid 的代码结构分析
system/bt 的主要文件结构及相应功能介绍如下。

main目录底下
 bte_main.cc

该功能涉及BTE核心栈的初始化和卸载。

bte_main_in_hw_init:负责芯片硬件的初始化
bte_main_boot_entry:调用 GKI_init,

  bte_init.cc

BTE_InitStack:初始化 BTE 控制块,如 RFCOMM、DUN、SPP、HSP2 和 HFP 等。核心 stack 必须在创建 BTU task(任务)前调用。

bta目录底下
bta 用于和 Bluetooth process 层交互,实现蓝牙设备管理、状态管理以及一些 Profile 的 Bluedroid 实现。BTA 的主要组件如下所示。

AG 实现 BTA 音频网关(audio gateway)
AR 负责 Audio/Video 注册
AV 实现 BTA advanced audio/video
DM 实现 BTA 设备管理
GATT 实现通用属性配置文件(Generic Attribute Profile),此模块是 Bluetooth 4.0 新增加的核心协议。
HL 实现 HDP (Health Device Profile)协议,此协议主要用于与健康设备的蓝牙连接,比如心率监护仪、血压测量仪、体温计等。
PAN 实现 PAN (蓝牙个人局域网)协议,使得设备可以连接以下设备:个人局域网用户(PANU)设备、组式临时网络(GN)设备或网络访问点(NAP)设备。
HH 实现 HID (Human Interface Device)协议,典型的应用包括蓝牙遥控器、蓝牙鼠标、蓝牙键盘、蓝牙游戏手柄等。
PBAP 实现 PBAP (Phone Book Access Profile)协议,用于从电话薄交换服务器上获取电话薄内容。
SYS 主要实现 BTA 系统管理。
btif
Bluetooth Interface:提供所有 Bluetooth Process 需要的 API。

src/bluetooth.cc HAL 层定义数组和函数体的实现。
src/btif_av.cc Bluedroid 上 AV 的实现,主要结构和功能函数如下。
src/btif_core.cc 该功能包含 HAL 层和 BTE 核心协议栈的核心接口函数。
src/btif_dm.cc 该功能实现设备管理(Device Manage)相关的功能。
src/btif_gatt.cc 实现 gatt 相关的接口。
src/btif_hf.cc 该功能实现 handsfree 协议的接口。
src/btif_hh.cc 该功能实现 HID Host 的蓝牙接口。
src/btif_hl.cc 该功能实现健康设备(Health Device)的蓝牙接口。
src/btif_media_task.cc btif 中的多媒体模块处理,AV(Audio Video)、HS(Headset)、HF(Handsfree)中的 audio 和 video 任务的处理。
src/btif_pan.cc 该功能实现 PAN 的蓝牙接口。
src/btif_rc.cc AVRCP 的实现,完成蓝牙耳机对音乐播放的控制。
src/btif_rc.cc 关于 btif 中状态机的处理。
src/btif_sock.cc Socket 相关接口。通过 btsock_listen 和 btsock_connect 来处理 SCO、L2CAP 和 RFCOMM 的监听与连接的建立。
HCI
HCI library 的实现,主要内容包括 HCI 接口的打开和收/发控制、Vendor 的 so 的打开和回调函数的注册、LPM(Low Power Mode) 的实现、btsnoop 的抓取等。

src/bt_hci_bdroid.c 该功能主要处理 Bluedroid 中 Host/Controller 接口(HCI)的实现。
src/vendor.c 该功能定义了 vendor 的调用函数,加载 libbt-vendor.so 库(由 vendor 提供的 libbt 文件夹里面的代码生成),初始化 vendor_interface,注册 vendor 需要的回调函数。
src/hci_h4.c 该功能包含 HCI 传送/接收处理。
src/hci_mct.c 该功能处理多链路的 HCI 发送和接收。
src/lpm.c 低功耗模式(Low Power Mode,LPM)用于完成低功耗模式相关的处理。
不同的 Android 版本 hci 实现可能不同,可以在 system/bt/hci/src/ 下查看相关文件。

stack
stack 主要用于完成各协议在 Bluedroid 中的实现,协议包含 a2dp、avctp、avdtp、avrcp、bnep、gap、gatt、hid、l2cap、pan、rfcomm、sdp、macp(Multi-Channel Adaptation Protocol,多通道适配协议)、smp(用于生成对等协议的加密密钥和身份密钥),还包含几个其他模块。

btm 主要涉及 Bluetooth Manger。
btu 该功能主要用于核心协议层之间的事件处理与转换。
参考资料
《低功耗蓝牙智能硬件开发实战》第2.7节《Bluedroid 的代码结构分析》

原文链接:https://blog.csdn.net/caoshen2014/article/details/105232758/

system/bt目录内容解析相关推荐

  1. java 解析/读取 种子/bt/torrent 内容

    碰到不会的技术问题,我还是先度娘.能中文看懂,为什么非要看英文呢. java 解析/读取 种子/bt/torrent  内容,这个度娘给的满意答案并不是很多.GG之后的搜索结果出现了stackover ...

  2. 审查元素上传php,KindEditor上传解析漏洞/列目录/内容漏洞_PHP教程

    本文章来给大家介绍一下关于KindEditor上传解析漏洞/列目录/内容漏洞分析,有需要的朋友快速补上吧. Kindeditor漏洞 编辑代码内容被执行 kindeditor漏洞描述:在kindedi ...

  3. 11.28 限定某个目录禁止解析php 11.29 限制user_agent 11.30/11.31 php相关配置

    - 11.28 限定某个目录禁止解析php - 11.29 限制user_agent - 11.30/11.31 php相关配置 - 扩展 - apache开启压缩 http://ask.apelea ...

  4. php 目录限制,限定某个目录禁止解析php,限制user_agent,php相关配置

    11月20日任务 11.28 限定某个目录禁止解析php 11.29 限制user_agent 11.30/11.31 php相关配置 1.限定某个目录禁止解析php 核心配置文件内容 php_adm ...

  5. (八)限定某个目录禁止解析php、限制user_agent和PHP相关配置

    2019独角兽企业重金招聘Python工程师标准>>> 限定某个目录禁止解析php 对于使用php语言编写的网站,有一些目录是有需求上传文件的.如果网站代码有漏洞,让黑客上传了一个用 ...

  6. LAMP(7限定某个目录禁止解析php、 限制user_agent、 PHP相关配置、PHP扩展模块

                    限定某个目录禁止解析php 防止***上传一个目录文件php,网站会从而解析php,对我们的网站有很大的危险. 因此,我们需要在能上传文件的目录直接禁止解析PHP代码 ...

  7. linux的apache2.4限定某个目录禁止解析PHP及user_agent与PHP相关配置

    限定某个目录禁止解析PHP 对于使用PHP语言编写的网站,有一些目录是有需求上传文件的,比如服务器可以上传图片,并且没有做防盗链,所以就会被人家当成了一个图片存储服务器,并且盗用带宽流量.如果网站代码 ...

  8. php 设置agent,限制某个目录禁止解析php及user_agent、php相关配置

    一. 限定某个目录禁止解析php 1. 核心配置文件内容 php_admin_flag engine off 2.curl测试时直接返回了php源代码,并未解析 二. 限制user_agent 1. ...

  9. 限定某个目录禁止解析php 限制user_agent php相关配置

    一.限定某个目录禁止解析php 通过禁止php解析图片目录,来限制网站被×××恶意找到后门获取到数据库权限 #vim /usr/local/apache2.4/conf/extra/httpd-vho ...

最新文章

  1. AI监测分析课堂背后的旷视科技:清华学霸创立,半年亏损52亿
  2. caioj 1158 欧拉函数
  3. 机器学习实战(用Scikit-learn和TensorFlow进行机器学习)(九)
  4. php地图,地图php接口
  5. 为JavaOne 2014做好准备!
  6. String or binary data would be truncated
  7. Android移植之自定义ProgressBar
  8. 面向电缆行业的高级计划与排程(商简SPS)解决方案
  9. 在谷歌搜索框内不显示搜索记录
  10. QTextEdit 富文本格式清除
  11. Ubuntu16.04 (ROS)下通过CAN分析仪(USBCAN/CANalyst-II)调试无人车助力转向电机(1)
  12. 用表格做一个简单地个人简历
  13. [转载]走近 Jazzy
  14. Python能在业余时间赚钱吗?
  15. 74LS160 笔记 数电实验
  16. python学习第十二天
  17. 恒指傻瓜操作系统(一)
  18. 无损压缩png_由于PNG格式具有压缩参数,它是否无损?
  19. 软件推广:快乐想象识字法全集
  20. typecho图片水印插件

热门文章

  1. 15w4k58s4引脚图_《51单片机轻松入门—基于STC15W4K系列》连载
  2. 用于AD620系列仪表放大器的RFI抑制电路
  3. 《论语》原文及其全文翻译 学而篇2
  4. 农行显示向百度服务器,百度与农行达成战略合作:共建智能银行
  5. 阿德莱德大学语言班成绩为C,2020年阿德莱德大学语言班学习经历分享
  6. 按防电击类型分类的II设备(无保护接地线缆)可免于线对地的浪涌实验
  7. iPhone微信防止撤销插件开发
  8. SQL语句--CASE函数写法的简单举例,及应用
  9. HTTP请求OPTION
  10. 天邑ty1208z海思3798刷版本_天邑TY1208Z_S905_M2_1G8G_EMMC_双片内存 长虹代工线刷固件...