使用Android BLE API连续读取多个GATT时,出现性能问题。
我每秒可以读取大约10个数据包,大约需要5到6秒钟。在我读取〜65的数据包后,吞吐量每1.5秒减少到大约1个数据包。
我做了几次测试,似乎内部BLE的速度真的很慢。在这种情况下,从Java GATT读取调用到外围设备(外围设备没有瓶颈)大约需要750毫秒,回到Java API回调大约需要750毫秒。
在我看来,BLE堆栈实现不佳,因为当我断开与设备的连接(可能清理了一些资源)然后重新连接时,我可以重现相同的问题:它在前5或6读每秒10个数据包秒(约65个数据包读取),然后变慢。
我在Galaxy S4和Nexus 4设备上进行了测试。两者相同。
关于如何改进它的任何建议?