Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/152.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android-移植C++;Socket服务器到Android?_Android_C++_Sockets_Android Ndk - Fatal编程技术网

Android-移植C++;Socket服务器到Android?

Android-移植C++;Socket服务器到Android?,android,c++,sockets,android-ndk,Android,C++,Sockets,Android Ndk,我是Android开发的新手,但我是LinuxC/c++背景 现在,我有Linux C++网络代理程序,它是在Boost库中编写的TCP服务器和客户端。这个代理程序的功能是 TCP服务器将接收Android应用程序的请求,并转换该请求 请求某些特定的格式 然后作为客户端将翻译后的内容发送到正确的远程计算机(如路由器) 我的任务是在Android系统上移植这个程序。并希望Android本机应用程序在Linux中通过类似套接字的方式与该代理程序通信 我在网上搜索,试图找到合适的方法。但是,我发现的大

我是Android开发的新手,但我是LinuxC/c++背景

现在,我有Linux C++网络代理程序,它是在Boost库中编写的TCP服务器和客户端。这个代理程序的功能是

  • TCP服务器将接收Android应用程序的请求,并转换该请求 请求某些特定的格式
  • 然后作为客户端将翻译后的内容发送到正确的远程计算机(如路由器)
  • 我的任务是在Android系统上移植这个程序。并希望Android本机应用程序在Linux中通过类似套接字的方式与该代理程序通信

    我在网上搜索,试图找到合适的方法。但是,我发现的大多数现有的东西似乎都是基于JavaJNI库的解决方案

    我想知道这是否可以通过守护进程或服务进程的方式来实现。代理程序有点大,所以,重写对我来说是一件非常痛苦的事情

    如有任何建议或解决方案,将不胜感激。提前谢谢


    Jeff

    除非我们谈论的是根设备,否则就没有办法在Android上处理Java,在堆栈的某个级别

    您可以将代码包装在本机活动中,这基本上意味着现有的Android Java类知道如何从.so文件加载一组预定义的公共符号

    这里的问题是什么时候启动上述活动,因为无法保证它能够持续运行

    Android在UNIX上没有守护进程,只有服务

    因此,作为替代方案,您可以创建一个Android服务类,但是从版本8开始,存在执行限制。这意味着你不能让它永远在后台运行

    可能通过使用绑定服务,应用程序在通过套接字进行通信之前需要连接到绑定服务,这可能会满足您的需要