如何在Android中有效地与UI线程进行通信?

时间:2017-05-22 08:06:10

标签: android multithreading performance networking ui-thread

我不熟悉Android技术,这就是我发帖的原因。

远程服务器通过TCP连接以高频率(最高30 fps)向Android设备发送图片。 Android设备是获取图片并在ImageView容器中显示它们(模拟视频)。

原因只允许从主线程进行UI操作我遇到了一些性能问题。现在,网络接收操作在单个线程中运行,该线程根据docs在每个接收的图片上将数据移动到UI线程。

我有两个想法可以提高效果:

  1. 略过一些图片(UI线程自身更新并从网络线程共享的某些资源中获取最新帧)
  2. 以某种方式优化绘图过程(现在我只是将一个位图分配给ImageView)
  3. 由于Android体验不佳,我无法确定这些想法是否值得赞赏。所以欢迎任何建议。 谢谢。

1 个答案:

答案 0 :(得分:0)

我可能错了,但我看不出多线程会如何为您带来更好(有用)的性能。我建议你缩小图像或编码(在源中),然后恢复 - 解码(在接收器上)。一个地方就在这里:https://developer.android.com/topic/performance/network-xfer.html

但你必须问自己图像,尺寸,如果你有一个大图像,你真的需要吗?你没有谈论它,在大多数情况下这很重要。像尺寸这样的参数很重要。如果这是一个很好的选择,本文可以帮助您:https://developer.android.com/topic/performance/graphics/load-bitmap.html