android的简单.so build:
先配置好ndk-buid, android ndk
然后下载
git clone https://github.com/weiqifa0/androidjni
进入该目录
cd jni
ndk-build
生成的.so在目录中
android蓝牙编译:下载aosp的代码,可以用清华链接比较快
https://mp.youkuaiyun.com/console/editor/html/100677205 参考代码下载
进入aosp目录
source build/envsetup.sh
lunch 这个命令会列出选项,选择一个
mmm ./system/bt 即可编译蓝牙模块
蓝牙播放音频_我只是好奇-优快云博客
https://blog.youkuaiyun.com/lf12345678910/article/details/102463272
蓝牙回连问题的分析_Neoway0401的博客-优快云博客
https://blog.youkuaiyun.com/neoway0401/article/details/86661031
蓝牙核心技术概述(四):蓝牙协议规范(HCI、L2CAP、SDP、RFOCMM)(转载) - 焦少 - 博客园
https://www.cnblogs.com/shaobojiao/p/7883536.html
https://www.ituring.com.cn/space/164005?sort=new&page=1
蓝牙无线网
蓝牙协议的命令和事件
蓝牙协议的命令和事件_蓝牙,bluetooth,L2CAP_believe的专栏-优快云博客
https://blog.youkuaiyun.com/wangzhen209/article/details/49252555?utm_source=blogxgwz3
https://www.cnblogs.com/iini/p/8834970.html 三种蓝牙架构实现方案(蓝牙协议栈方案)
蓝牙Host Controller Interface笔记 https://www.bbsmax.com/A/E35pLEbg5v/
https://blog.youkuaiyun.com/u011960402/article/details/12942327 [android源码分析]hci_init_req中的各种command和event的交互
以avrcp为例子,带有HAL标记的表示 从底层向上层的函数调用,从底层给上层返回消息
带有cb的,mw字样的,表示从上层到底层的调用linuxbt_mw等。
将a2dp src接起来,同时需要接的是avrcp的tg;
讲a2dp sink接起来,同时需要接的是avrcp的ct;
一般情况下a2dp sink与avrcp ct是一起的;a2dp src与avrcp tg是一起的;
absolute volume相反,a2dp sink为tg;a2dp src为ct;
产品场景:设备A不支持abs volume,做sink设备;设备B支持abs volume,比如iphone xs;、
那么设备B连接设备A,B做src,A做sink;B播放音乐的过程,B端调节音量,B做CT,A做TG;B切换到下一首歌曲,
B做tg,A做CT?在HCI log中可以看到B做CT与TG的情况?
clound,edge,channel; 云端,边缘端,管道;clound与clound之间,通过channel管道交互;clound与edge之间?
edge与edge之间?edge包括哪些(智能设备,音响、耳机等)
os区别,yocto,android,freertos,linux;linux TV, android TV,yocto音响(speaker)
https://www.jianshu.com/p/73f7366161d1 思考从HCI log角度看
ACL Data: 有来自controller,也有来自host的
command:只是打了Host标签
event:打了controller标签
对于AVRCP而言,做CT角色的,CT来自Controller, TG来自Host;做TG角色的,CT来自Host,TG来自Controller;
思考,做CT角色,需要将CT发送到对端设备,所以,从controller;做TG角色,同样将TG的rsp发送对端》
对于A2DP,发送音乐的一端,数据全是Host,即使角色为slave; 对于sink,接收数据的一端,数据来自controller,即使角色为slave;
一些链接
hcidefs.h
hcicmds.c
一些注意的函数:
bta_av_act.c中bta_av_rc_msg函数中1148出现问题当p_data->rc_msg.msg.pass.pass_len == 0的时候
因为对于p_data->rc_msg.msg.pass.pass_len == 0的情况没有对av.remote_rsp.p_data赋值,所以有空指针null pointer
需要查看的函数:rc_ctrl_callbacks->track_changed_cb
avrc_msg_cback
btif_sm_dispatch
btif_rc_handler
蓝牙HCI log解析
https://www.jianshu.com/p/73f7366161d1 Android Bluetooth HCI log 详解
https://blog.youkuaiyun.com/sinat_19628093/article/details/52149189 安卓蓝牙如何查看和分析btsnoop.log
https://www.twblogs.net/a/5c89ee27bd9eee35fc14a568 藍牙耳機打電話流程hci.log解析
http://www.voidcn.com/article/p-pkhazvcf-qx.html 如何分析HCI的Command Packet和Event Packet包
https://blog.youkuaiyun.com/u010657219/article/details/42192481 在HCI层看蓝牙的连接过程
http://www.jeepxie.net/article/499894.html 启用蓝牙HCI信息收集日志
蓝牙协议的命令和事件
http://blog.sina.com.cn/s/blog_7d688acb0102vpl8.html
L2CAP数据发送和接收
https://blog.youkuaiyun.com/luopingfeng/article/details/50239901
BlueDroid代码学习分享
https://blog.youkuaiyun.com/zcc450959507/article/details/79402406
蓝牙A2DP模块详细函数调用图_
https://wenku.baidu.com/view/0e866586be1e650e53ea994f.html
Bluedroid: 音频数据的传输流程
https://www.cnblogs.com/blogs-of-lxl/p/7429367.html
a2dp播放流程源码分析
http://www.mamicode.com/info-detail-2447446.html
android5.1 蓝牙子系统介绍(一)Android下bluedroid、bluetooth apk介绍
https://blog.youkuaiyun.com/weixin_39481506/article/details/79932982
bluedroid a2dp sink播放流程
https://blog.youkuaiyun.com/u010481276/article/details/90413582
蓝牙系列博客:
https://www.cnblogs.com/libs-liu/default.html?page=2
蓝牙整体框架学习整理
https://blog.youkuaiyun.com/u010312289/article/details/87868181
原创
Android BT STACK BTU 和 HCI之间的消息传递
本文链接:https://blog.youkuaiyun.com/yanli0084/article/details/51824060
蓝牙打开流程(btu_task_start_up打开 和 BT hci打开
https://blog.youkuaiyun.com/u010312289/article/details/90442860
转载
A2DP协议笔记(蓝牙的音频传输协议)
https://blog.youkuaiyun.com/u010503912/article/details/59483337
蓝牙扫描流程整理(从app层到HCI)
https://blog.youkuaiyun.com/u010312289/article/details/90442804
https://blog.youkuaiyun.com/feelinghappy/article/details/86021364
>(6条消息)Bluedroid: 蓝牙协议栈源码剖析 - feelinghappy的专栏 - 优快云博客</A>
https://www.jianshu.com/p/d60d480e0e48
>蓝牙协议-----之pan profile on bluedroid - 简书</A>
https://blog.youkuaiyun.com/javon_hzw/article/details/48731281
>(6条消息)Android bluedroid模块间关系 - javon_hzw的专栏 - 优快云博客</A>
https://www.cnblogs.com/hellokitty2/p/10479167.html
>Android蓝牙学习笔记 - Hello-World3 - 博客园</A>
http://www.mamicode.com/info-detail-2579632.html
蓝牙speaker配对流程源码分析</A>
http://www.elecfans.com/baike/waijiepeijian/lanyashipeiqi/20190531949249.html
智能音响蓝牙调试经验 - 电子发烧友网</A>
http://ishare.iask.sina.com.cn/f/iQZHwchjFY.html
>android蓝牙智能解锁笔记word免费下载_爱问共享资料</A>
https://blog.youkuaiyun.com/feelinghappy/article/details/97764878
>(6条消息)BlueDroid源码详细分析 - feelinghappy的专栏 - 优快云博客</A>
https://blog.youkuaiyun.com/madannasf/article/details/102684139
>(6条消息)Bluedroid框架 - madannasf的博客 - 优快云博客</A>
https://blog.youkuaiyun.com/mouse1598189/article/details/87858779
>(6条消息)BlueDroid软件协议栈架构 - sundaygeek的专栏 - 优快云博客</A>
https://blog.youkuaiyun.com/weixin_30301183/article/details/98921708
>(6条消息)Bluedroid: 蓝牙协议栈源码剖析 - weixin_30301183的博客 - 优快云博客</A>
https://blog.youkuaiyun.com/u010481276/article/details/90510809
>(6条消息)Bluedroid: 音频数据的传输流程问题分析 - 人帥不说话 - 优快云博客</A>