如何为Android设备编写简单的本机SERVER程序(不是应用程序)?

首先,我相信这不是一个重要的问题.我不想用NDK写一个本机应用程序,我只想使用Android设备作为便宜的Linux服务器.在这种情况下,服务器是指没有UI的程序.另外,服务器是用裸C编写的,但根本不使用任何库,所以这个问题与其他问题不同.

故事

我们为Linux编写了一个小型服务器,它具有一个网络服务器界面,所以你可以用一个香草浏览器连接到它,你可以玩它.我们将其编译到Linux / x86,Linux / ARM(GuruPlug),Linux / PPC(某种NAS)和Mac OS X达尔文平台.

我的PalmPré智能手机上的Linux / ARM版本也运行良好.我刚刚将可执行文件复制到我的手机上(在webOS场景中,没有像越狱这样的东西,有一个官方的“开发人员模式”,如果您通过键入密钥组合激活,您可以使用ssh登录到您的手机或使用本地ssh应用程序).所以,我们的小型服务器程序(守护进程可能会说)即使是最小的Linux设备上运行. (当您将千兆台式机的浏览器连接到智能手机服务器时,这很有趣.)

服务器程序设计为运行在最小的Linux(正如我所说,它运行在NAS,路由器,智能手机),它只需要STDLIB和PTHREADS.

问题

在Android设备上运行简单的服务器程序的直接方法是什么?

>我们还没有Android设备.但是我认为任何基于ARM的人都会做.服务器的内存占用空间很小,这是没有问题的.
>我假设,设备必须是rooted才能复制可执行文件并运行.
>我不想在设备上安装全新的Linux.它应该继续运行Android,而我们的服务器在后台运行.对于Dalvik来说足够的Linux发行版对我们的服务器来说足够了,我很确定.
>服务器应该不使用任何外部的东西(USB,触摸屏,音频,摄像头,麦克风 – 不是),只能使用不由Android分配的网络服务器端口(例如8080).
>我有ARM GCC工具链,安装它不是问题的一部分(除了有技巧).
程序的安装应该是手动的(scp,无论如何).另外,我不想做一个包或任何自动部署.
>启动服务器程序的问题是另一个问题,我们现在将忽略.

所以,我只想和Andrid设备(手机,平板电脑)做同样的事情,就像我在我的webOS设备上一样:复制服务器程序并运行它.电脑是为了运行程序,不是吗? 😉

最佳答案
你肯定需要一个根植的Android设备.
我建议您安装busybox以获取一堆不错的命令行工具,如wget,tar,gzip等等.
您可以通过使用adb shell,然后su访问root来访问设备.您可以使用adb push或wget将您的服务器放在设备上.
/系统分区以只读方式安装,根据制造商有很多保护措施,限制您在此处写入,因此您应该将服务器复制到/ data分区上的某个位置(例如mkdir / data / myserver).之后,一切都应该很简单.

转载注明原文:如何为Android设备编写简单的本机SERVER程序(不是应用程序)? - 代码日志