我正在为Android开发基于网络的UI应用程序,该应用程序将执行以下类型的功能
考虑到上述情况,应用程序可能必须为多个连接生成多个线程并管理它们。所以我的查询是
使用Boost.Asio库开发网络模块是否很好?或者可以打开多达100个套接字线程进行连接?
如果使用Boost.Asio,那么将使用NDK单独开发网络模块,访问JNI会到位,这反过来会导致响应缓慢?
或者,还有其他更好的选择吗?期待您的投入!
非常感谢提前。
答案 0 :(得分:2)
我建议您查看Android上支持的New I/O。使用它可以在单个线程中处理多个连接,API原则上类似于Posix select()
调用。
如果您决定选择第二个选项(使用C / C ++实现的网络代码),我认为您不应该担心JNI的性能。无论如何,Android API的重要部分只是一个基于C / C ++的瘦JNI包装器。