Answers:
考虑一下这一点:https : //github.com/NanoHttpd/nanohttpd。很小,用Java编写。我使用它没有任何问题。
NanoHttpd在Android上的魅力十足-我们已经在生产代码中,在用户手中建立了代码。
该许可证绝对允许NanoHttpd的商业使用,而没有任何“病毒”的含义。
可以使用ServerSocket来完成此操作,与JavaSE相同。此类在Android上可用。android.permission.INTERNET
是必须的。
唯一比较棘手的部分是,您需要在ServerSocket上等待一个单独的线程,以服务来自其accept
方法的子套接字。您还需要根据需要停止并恢复该线程。最简单的方法似乎是通过关闭ServerSocket来杀死正在等待的线程。如果您仅在活动处于顶部时才需要服务器,则可以将ServerSocket线程的启动和停止与活动生命周期方法紧密地联系在一起。同样,如果服务器有多个用户,则最好在派生线程中处理请求。如果只有一个用户,则可能没有必要。
如果需要告诉用户服务器正在侦听哪个IP,请使用 NetworkInterface .getNetworkInterfaces(),此问题可能会告诉您其他技巧。
最后,这里可能有一个完整的最小Android服务器,它非常简短,简单,并且比最终用户应用程序更容易理解,在其他答案中建议这样做。
您可以尝试http://tjws.sf.net的另一台服务器,实际上它已经提供了启用Android的版本。
如果您使用的是kotlin,请考虑以下库。它是为Kotlin语言构建的。 https://github.com/weeChanc/AndroidHttpServer https://github.com/ktorio/ktor
AndroidHttpServer很小,但是功能也很少。
Ktor是一个非常不错的库,用法也很简单