2020年3月17日星期二

Android系统上的http服务端开发

前文提到过,前些天接到一个Android系统开发任务,其中一个模块是开发一个http服务端,供客户端通过微服务的形式,下发命令和获取日志。
我本无Android开发经验,马上上网搜索,发现很多人写的经验,不过是提供静态网页,大部分还是给自己的html5前端提供,这类需求用NanoHttpd一般都可以满足。但我需要提供微服务,按网上的说法,这种情况推荐使用Android Async库(好像流行称作“框架”),github地址是
https://github.com/koush/AndroidAsync
然而,Android Async仍然是一套比较底层的代码,并不直接提供服务器功能,把它用起来对我来说难度不小。恰好CSDN上有一些使用Android Async库的文章。推荐这篇
https://blog.csdn.net/TurkeyCock/article/details/86555919?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task
这篇文章还附带了代码,文末附带了链接,即下面的网址。结合代码和这篇文章,我很快就掌握了这套库的基本用法。
https://github.com/qianxin2016/AndroidHttpServer
当时好友李想帮我看过这套代码,这套代码有个缺点是,服务跑在主线程里,没有跑在单独的线程里。这样当主线程繁忙的时候可能会导致服务响应缓慢,其他人在使用时,最好优化一下。
开发好的APP, 在PC上的模拟器中运行时,通过同一模拟器上的其他应用是可以访问这个服务的,但是通过PC机却不能访问。android开发者官网有个指导,讲解了使用redir命令配置模拟器的端口重定向,但我反复试了好久都没有成功。后来在手机上,将手机和电脑接入同一局域网,在电脑上示可以访问和调试这个服务的。小白无需担心Android是否有防火墙的问题。

没有评论:

发表评论