我不擅長Android技術,因此我發佈了一個問題。如何在Android中有效地與UI線程進行通信?
遠程服務器在具有高頻的TCP連接(最高可達30 fps)發送圖片到Android設備。 Android設備將獲取圖片並將其顯示在ImageView容器中(模擬視頻)。
促使UI操作只從主線程使我得到了一些性能問題。現在,網絡接收操作正在單線程中運行,根據docs將數據移動到每個接收到的PIC上的UI線程。
我有兩個想法,更好的性能:
- 跳過一些圖片(UI線程更新本身,並採取一些資源最新的框架與聯網線共享)
- 不知何故進行優化的繪製過程(只是現在的我將位圖分配給ImageView)
由於Android體驗差,我無法確定是否讚賞此想法。因此,歡迎任何建議。 Thx。
也許第二個線程從ConcurrentLinkedQueue或任何其他線程安全隊列中讀取並將輪詢的圖像發佈到您的視圖? – JacksOnF1re
@ JacksOnF1re這可能是一個好主意(我正在考慮自己實現線程安全隊列),我會測試它的性能。 但我認爲,真正的里程碑是在繪製屏幕上的影像的方式(現在我建立從原料JPEG/PNG/BMP數據的位圖,並將其分配給ImageView的)。 – f4f
如果你有服務器的控制權,我會把它作爲UDP視頻流。 – nasch