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