Android 附近连接发送有效负载部分 wifi 感知和蓝牙
Android Nearby Connection send payload partially wifi aware and bluetooth
我正在使用 P2P_POINT_TO_POINT 在两个设备之间发送图像有效负载(也是 STAR,每次有效负载传输,我们都会建立连接并断开连接)。
但是吞吐量比我预期的低很多所以我检查了日志
04-16 10:15:10.456 I 13712 31046 NearbyConnections: Sent FILE data(2686932 bytes) via WIFI_DIRECT used 324 milliseconds, throughput is 7.91 MB/s (8098.63 KB/s), File IO takes 3 ms, Encryption takes 66 ms, Socket IO takes 240 ms [CONTEXT service_id=54 ]
04-16 10:15:10.456 I 13712 31046 NearbyConnections: Sent FILE data(488182 bytes) via BLUETOOTH used 6498 milliseconds, throughput is 0.07 MB/s (73.37 KB/s), File IO takes 4 ms, Encryption takes 67 ms, Socket IO takes 6404 ms [CONTEXT service_id=54 ]
04-16 10:15:10.456 I 13712 31046 NearbyConnections: Sent FILE data(3175114 bytes) SUCCEEDED, overall used 7370 milliseconds, throughput is 0.41 MB/s (420.72 KB/s), File IO takes 7 ms, Encryption takes 133 ms, Socket IO takes 6644 ms [CONTEXT service_id=54 ]
所以附近的连接通过蓝牙发送了部分有效负载,这使得发送有效负载延迟。
有什么解决办法只用wifi发送吗?
由于我们正在使用 'snake' 策略构建应用程序,因此吞吐量很重要。
很遗憾,目前还没有。最好的办法是在连接后的前 ~5 秒内延迟大文件传输。
当我们升级到 WiFi 时,有一个隐藏的 API 会触发回调事件。我已经敦促某人公开揭露这一点,但需要一段时间才能完成正式程序。
我正在使用 P2P_POINT_TO_POINT 在两个设备之间发送图像有效负载(也是 STAR,每次有效负载传输,我们都会建立连接并断开连接)。
但是吞吐量比我预期的低很多所以我检查了日志
04-16 10:15:10.456 I 13712 31046 NearbyConnections: Sent FILE data(2686932 bytes) via WIFI_DIRECT used 324 milliseconds, throughput is 7.91 MB/s (8098.63 KB/s), File IO takes 3 ms, Encryption takes 66 ms, Socket IO takes 240 ms [CONTEXT service_id=54 ]
04-16 10:15:10.456 I 13712 31046 NearbyConnections: Sent FILE data(488182 bytes) via BLUETOOTH used 6498 milliseconds, throughput is 0.07 MB/s (73.37 KB/s), File IO takes 4 ms, Encryption takes 67 ms, Socket IO takes 6404 ms [CONTEXT service_id=54 ]
04-16 10:15:10.456 I 13712 31046 NearbyConnections: Sent FILE data(3175114 bytes) SUCCEEDED, overall used 7370 milliseconds, throughput is 0.41 MB/s (420.72 KB/s), File IO takes 7 ms, Encryption takes 133 ms, Socket IO takes 6644 ms [CONTEXT service_id=54 ]
所以附近的连接通过蓝牙发送了部分有效负载,这使得发送有效负载延迟。
有什么解决办法只用wifi发送吗? 由于我们正在使用 'snake' 策略构建应用程序,因此吞吐量很重要。
很遗憾,目前还没有。最好的办法是在连接后的前 ~5 秒内延迟大文件传输。
当我们升级到 WiFi 时,有一个隐藏的 API 会触发回调事件。我已经敦促某人公开揭露这一点,但需要一段时间才能完成正式程序。