在应用之间无延迟地发送实时数据的最佳方法是什么

时间:2018-07-24 19:56:13

标签: android unity3d

在Android中,我有一个后台应用程序,该应用程序正在收集一些感应数据,进行处理并将其按意图发送给在前台运行的Unity应用程序,该应用程序使用它来更新对象的变换。您可能会猜到,我需要每秒执行60次。使用意图作为应用之间的通信方式,确实增加了Unity中转换的延迟和迟钝。是否有更好的方法在两个Android应用之间进行实时通信?任何指针将不胜感激。

3 个答案:

答案 0 :(得分:1)

如果时间是您最关心的时间,则应使用TCP或UDP。但是,根据您制作的应用程序的类型,UDP和TCP的功能可能有所不同:

What is the difference between TCP and UDP?

答案 1 :(得分:1)

如果您可以使用AIDL远程回调,则可以以极低的延迟进行操作。

https://doc.lagout.org/programmation/Android/Android%20Programming_%20Pushing%20the%20Limits%20%5BHellman%202013-11-04%5D.pdf

第141页的帮助回调说明了这一点。

在我的情况下,我使用每秒1500的频率,因此它仍然以非阻塞方式工作。

答案 2 :(得分:0)

您不能无延迟地发送数据。是的,这对我来说是个不错的选择,Google玩游戏(Google实时多人游戏),其主要基于房间的max 8播放器,进行点对点连接,您可以发送TCP和UDP消息。但是每秒说一次您正在从FixedUpdate函数发送消息。我建议您不要发送太快,每4帧发送1条消息(取决于您如何进行网络同步),TCP可能会堆叠并且您永远都不会想要的结果。UDP更有效,无连接的协议和消息可能会传递,也可能不会传递。无论如何,您必须进行一些网络同步。