android 端可以通过两种方式去Debug:
一、在手机的设置功能里,开发者模式 Enable,如下图:
 
然后在手机的根目录下有一个名类似叫:btsnoop_hci.log 的日志.
通过工具 Wireshark 查看日志:
host对应的是主机, controller对应的是控制器。
 
Android端查看蓝牙日志:
日志数据的分析:
 
 
二、通过Packet Sniffer 工具抓包分析:
需要购买一个抓包神器,低功耗BLE CC2540 USB Dongle,通过它来抓包.
 
抓包后的数据:
对应标识的解释如下:
Field #
Source
Explanation
Core spec chapter
1
Sniffer
Packet number as logged by the sniffer
 
2
Capture device
Time in microseconds since last packet was received and absolute time
 
3
Capture device
Radio channel data was captured on
6.B.1.4.1
4
Air
Bluetooth spec specified address for advertising and scan response
6.B.2.1.2
5
Air
Type of advertisement packet
6.B.2.3
6
Air
Header
6.B.2.3
7
Air
Advertiser IEEE address
6.B.2.3
8
Air
Advertisement data. In this example it's capabilities and three UUIDs the device provides.
6.B.2.3 / 3.C.11 / 3.C.18.1
9
Air
Precalculated CRC checksum
6.B.2.1.4
10
Capture device
Received signal strength indicator.
 
11
Capture device
Field Control Sequence. If OK, the checksum is correct
 
The advertisement fields are further explained in 6.B.2.3 on page 2202 of the BT core spec.
 
5 是广播报文的类型,共7种:
1、ADV_IND——通用广播指示
2、ADV_DIRECT_IND—— 定向连接指示
3、ADV_NONCONN_IND—— 不可连接指示
4、ADV_SCAN_IND——可扫描指示
5、SCAN_REQ——主动扫描请求
6、SCAN_RSP——主动扫描响应
7、COMNNECT_REQ——连接请求
 
广播报文,接入地址为固定值:0x8E89BED6
 
报文结构:
 8               32                    8             8         0~296                  24                  比特
前导
接入地址
报头
长度
数据
循环冗余校验
 
 
 
 
 
广播报文的长度域:6~37
数据报文的长度域:0~31
这两者的区别在于:广播报文需要加上 6个字节的广播地址
 
发起连接的抓包情况:
 
蓝牙规范 Bluetooth 4.0 Core Specification[2] Volume 6, Part B, chapters 2.1, 2.3 and 2.4.
TI 官网有关于sniffer 抓包分析的资料
 
 
debug总结:

蓝牙学习笔记三(Android Debug)的更多相关文章

  1. Android Studio安卓学习笔记(三)Android用户界面的设计布局与组件(一)用户界面布局设计(1)

    当我们创建了一个安卓项目后,我们会发现真正建立一个完善的安卓项目并不是想象的那么容易.其实和设计GUI可视化界面一样,开发安卓也需要考虑很多方面,主要考虑的还是界面布局和需要的组件. 一:Androi ...

  2. VSTO学习笔记(三) 开发Office 2010 64位COM加载项

    原文:VSTO学习笔记(三) 开发Office 2010 64位COM加载项 一.加载项简介 Office提供了多种用于扩展Office应用程序功能的模式,常见的有: 1.Office 自动化程序(A ...

  3. muduo网络库学习笔记(三)TimerQueue定时器队列

    目录 muduo网络库学习笔记(三)TimerQueue定时器队列 Linux中的时间函数 timerfd简单使用介绍 timerfd示例 muduo中对timerfd的封装 TimerQueue的结 ...

  4. 物联网学习笔记三:物联网网关协议比较:MQTT 和 Modbus

    物联网学习笔记三:物联网网关协议比较:MQTT 和 Modbus 物联网 (IoT) 不只是新技术,还是与旧技术的集成,其关键在于通信.可用的通信方法各不相同,但是,各种不同的协议在将海量“事物”连接 ...

  5. openresty 学习笔记三:连接redis和进行相关操作

    openresty 学习笔记三:连接redis和进行相关操作 openresty 因其非阻塞的调用,令服务器拥有高性能高并发,当涉及到数据库操作时,更应该选择有高速读写速度的redis进行数据处理.避 ...

  6. Oracle学习笔记三 SQL命令

    SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)  

  7. [Firefly引擎][学习笔记三][已完结]所需模块封装

    原地址:http://www.9miao.com/question-15-54671.html 学习笔记一传送门学习笔记二传送门 学习笔记三导读:        笔记三主要就是各个模块的封装了,这里贴 ...

  8. JSP学习笔记(三):简单的Tomcat Web服务器

    注意:每次对Tomcat配置文件进行修改后,必须重启Tomcat 在E盘的DATA文件夹中创建TomcatDemo文件夹,并将Tomcat安装路径下的webapps/ROOT中的WEB-INF文件夹复 ...

  9. java之jvm学习笔记三(Class文件检验器)

    java之jvm学习笔记三(Class文件检验器) 前面的学习我们知道了class文件被类装载器所装载,但是在装载class文件之前或之后,class文件实际上还需要被校验,这就是今天的学习主题,cl ...

随机推荐

  1. pages bookmarks for machine learning domain

    http://www.ai-start.com/dl2017/html/lesson4-week2.html  达叔深度学习笔记 http://cs231n.github.io/convolution ...

  2. Python学习---Python环境变量安装问题0907

    问题背景: 重新安装操作系统后,原来的环境变量丢失[因Python3.5安装目录是E盘,文件还在,只是丢失了环境变量而已,添加即可] 问题解决: 方法一:使用cmd命令添加path环境变量 在cmd下 ...

  3. "==" equals和hashCode的联系和区别

    写这篇文章的目的是自己彻底把三者搞清楚,也希望对你有所帮助. 1."=="运算符对与基本类型(int long float double boolean byte char sho ...

  4. X-Pack权限控制之给Kibana加上登录控制以及index_not_found_exception问题解决

    无法查看索引下的日志问题解决 好事多磨,我们还是无法在Kibana下看到数据,究竟是怎么一回事呢? 笔者再次查看了logstash的控制台,又发现了如下错误: logstash outputs ela ...

  5. scss 使用

    SCSS 常用功能 https://www.cnblogs.com/guangzan/p/10547335.html 定义变量$my-color: #666; //定义变量$my-heihgt: 10 ...

  6. Xmind在win10更改用户设置后出现Invalid Configuration Location 错误的解决办法

    错误原因: 因为一开始新建win10用户时,使用的是中文用户名,导致了部分软件比如IDEA读取C盘中配置文件时报错.我用管理员权限修改用户姓名为英文后,IDEA的问题虽然已经解决,但Xmind却报出了 ...

  7. java中Integer与int装箱拆箱一点收获

    示例代码: class BoxIntInteger { public static void main(String[] args) { Integer a = new Integer(10111); ...

  8. unlimited 控制

  9. CSS居中布局

    一:水平居中方案: 1.行内元素 设置 text-align:center 2.定宽块状元素 设置 左右 margin 值为 auto 3.不定宽块状元素 a:在元素外加入 table 标签(完整的, ...

  10. [转]numpy中的np.max 与 np.maximum区别

    转自:https://blog.csdn.net/lanchunhui/article/details/52700895