我应该在Android中选择Boost Asio还是Aysnc Socket线程?

RDX*_*RDX 5 sockets boost-asio android-networking android-asynctask

我正在为Android开发基于网络的UI应用程序,它将执行以下类型的功能

  1. 需要与基于n/w的嵌入式设备上运行的TCP服务器通信(一次> 100).
  2. 定期轮询这些设备以获取更新的信息
  3. 从这些设备发送和接收信息
  4. 以上所有信息都将由应用程序的UI控制和管理

考虑到上述情况,应用程序可能必须为多个连接生成多个线程并管理它们.所以我的查询是

  1. 使用Boost.Asio库开发网络模块是一种好方法吗?或者可以打开多达100个套接字线程进行连接?

  2. 如果使用Boost.Asio,那么将使用NDK单独开发网络模块,访问JNI会到位,这反过来会导致响应缓慢?

或者,还有其他更好的选择吗?期待您的投入!

提前谢谢了.

Cod*_*ers 3

我建议看一下New I/O,它在 Android 上受支持。使用它你可以在单个线程中处理多个连接,API 原则上类似于 Posixselect()调用。

如果您决定选择第二个选项(用 C/C++ 实现的网络代码),我认为您不应该担心 JNI 性能。无论如何,Android API 的重要部分只是 C/C++ 之上的一个薄 JNI 包装器。