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