在android应用程序中处理UDP数据流的最佳方法

在android应用程序中处理UDP数据流的最佳方法,android,multithreading,udp,video-streaming,Android,Multithreading,Udp,Video Streaming,这是一个关于在android上接收UDP数据的最佳方式的架构问题 我正在通过wifi链接从自定义硬件设备发送视频流。我的设备有一些硬件限制,因此视频流由一系列JPEG图像组成。每个图像被分成一组数据包,并通过UDP(TCP在这里也是一个选项)分块发送 我有一个安卓平板设备,它连接到我的定制成像硬件并接收数据。目前我有一个线程在循环中等待UDP数据包。当收到一个数据包时,我创建一个数据包并将其作为消息的一部分发送回主线程。在主线程上的处理程序中,我从消息中获取字节数组,并将其传递给尝试重建jpeg

这是一个关于在android上接收UDP数据的最佳方式的架构问题

我正在通过wifi链接从自定义硬件设备发送视频流。我的设备有一些硬件限制,因此视频流由一系列JPEG图像组成。每个图像被分成一组数据包,并通过UDP(TCP在这里也是一个选项)分块发送

我有一个安卓平板设备,它连接到我的定制成像硬件并接收数据。目前我有一个线程在循环中等待UDP数据包。当收到一个数据包时,我创建一个数据包并将其作为消息的一部分发送回主线程。在主线程上的处理程序中,我从消息中获取字节数组,并将其传递给尝试重建jpeg图像的方法。如果成功,它将使用BitmapFactory创建位图并将其推入队列(此步骤可能很愚蠢)。然后,主线程将图像出列并放入ImageView

我不确定这是否是做事情的最佳方式。是否有一种方法可以避免将数据移回主线程?如果有,如何将重建图像移回UI线程


谢谢您的建议。

将除位图渲染之外的所有内容从主线程中移出。我不确定如何最好地执行此操作。我是否创建位图并将其存储在单独线程的内存中,然后通过消息将图像发送回主线程?将大量数据(如位图)从一个线程传递到另一个线程是否存在效率问题?