关于蓝牙协议栈,这里分享两处整理的较为全面和细致的资源:
蜗窝科技
CY大象
前段时间一直在研究蓝牙, 加了一些做蓝牙的群, 可是最终发现,很多从事蓝牙开发的iOS
人员,连蓝牙协议栈都不知道, 关于安全机制甚至都没听过, 这主要也是因为苹果的封装实现都比较简单,而更多的一些设置接口并未暴露,这也导致了iOS
方面存在诸多限制.
通过这段时间的测试结果,总结了下iPhone
的MTU
信息:
MTU
包括三个部分:OP Code(1Byte)
,Handler(2Byte)
,Payload
, 通过不同设备的测试, 抛去 OP Code(1Byte)
,Handler(2Byte)
, 所以得出了以上的结果, 而Android
的MTU
已经达到了247
, 至于可以手动进行设置这点 , 因为我并不从事Android
开发 , 所以没有尝试过.
下面是一份从ifixit
上获取到的iPhone
的WiFi-BT
蓝牙硬件参数信息:
因为公司项目要保证强实时和高质量通信速率, 所以对通信速度也做了多次的测试, 以下是部分测试结果:
说明: 以上测试结果是在设备波特率为19200
下的测试结果, 很多外设目前的波特率最高为115200
, 可是我们的设置在修改到了115200
波特率下后,iOS
就会出现传输速率不稳定,每个包片段长度阶梯型变化的现象, 但Android
那边并无影响 , 虽然iOS
不能像Android
那样有更大的MTU size
,但是在苹果论坛中, 有一位苹果工作人员留下这样一段答复:
然而在通信速度上,4.0
与4.2
甚至与 4.2 + DLE
三者在通信速度上并没有看到什么明显的提升.
在关于蓝牙后台方面,我曾经做过三次测试(在没有开启后台重连的情况下):
第一次最长,保持了15.5小时
第二次保持了11小时
第三次只保持了8小时左右
测试的环境是,打开应用放置后台锁屏