事情是这样子的, 前段时间在浏览github的时候,偶然间发现了一个有趣的项目AndServer,说是能够用Android写一个可运行的后台服务,并且写法还和当前最流行的SpringBoot很类似,于是我就上手试了一把,觉得非常有趣,于是就参照着文档,写了个服务端和客户端的模版,这里分享给大家,有兴趣的可以把玩把玩,还是很有趣的.
AndServer
在分享之前,我先来简单地介绍一下这个AndServer项目.
AndServer是阿里大佬yanzhenjie的开源项目,项目地址: github.com/yanzhenjie/…, 目前有大约2.5k的star,写得还是相对不错的,感兴趣的同学可以尝试去阅读一下源码.
简介
原文是这样描述的:
AndServer is an HTTP and reverse proxy server. Web server and Web framework of Android platform. It provides annotations like SpringMVC, and if you are familiar with SpringMVC, you can master it very quickly.
- Static html website deployment.
- Dynamic http api deployment.
- Reverse proxy server.
翻译过来就是:
AndServer是一个HTTP和反向代理服务器。 Android平台的Web服务器和Web框架。它提供类似SpringMVC的注释,如果您熟悉SpringMVC,您可以很快地掌握它。
- 静态html网站部署。
- 动态http api部署。
- 反向代理服务器。
集成AndServer
- 将plugin添加到项目buildscript中:
buildscript { repositories { jcenter() mavenCentral() google() } dependencies { classpath 'com.yanzhenjie.andserver:plugin:2.1.5' ... } } ...
- 在你的模块中增加AndServer的依赖:
apply plugin: 'com.yanzhenjie.andserver' ... dependencies { implementation 'com.yanzhenjie.andserver:api:2.1.5' annotationProcessor 'com.yanzhenjie.andserver:processor:2.1.5' ... }
如果你使用的是Kotlin, 需要替换annotationProcessor
为kapt
.
TemplateAndServer
介绍完AndServer,下面就开始介绍我编写的TemplateAndServer.
TemplateAndServer是我根据AndServer的文档和案例,结合我常用的X-Library系列库所编写的简化版的Android服务端模版,主要用于接口模拟测试等场景。
项目的地址: github.com/xuexiangjys…, 喜欢的可以点击star收藏哦~~
演示
服务端演示
浏览器演示
写法对比
- AndServer
- SpringBoot
从上面的图片我们很容易看出,AndServer的写法和SpringBoot是非常相似的,就连项目工程的结构也是相似的。
功能介绍
本模版项目主要使用AndServer提供的服务搭建,内置常用的基础模块,功能如下.
- 统一的请求日志记录。
- 全局异常捕获处理,返回统一API结果。
- 增加全局权限验证拦截器。
- 文件上传。
- 后台管理界面。
- 接口测试界面。
返回Json格式
{ "code":0, //响应码,0为成功,否则失败 "msg":"", //请求失败的原因说明 "data":{} //返回的数据对象 }
集成说明
使用方式
服务器配置
在com.xuexiang.server.ServerConfig
进行配置的修改。
服务接口编写
1.在com.xuexiang.server.controller
包下创建Controller类。
2.在Controller类上加上@RestController
和@RequestMapping
注解。
日志查看
在logcat上搜索关键词"AndServer"即可查看请求日志。