AndServer

2025-05-07

android

古来一切有成就的人,都很严肃地对待自己的生命,当他活着一天,总要尽量多劳动,多工作,多学习,不肯虚度年华,不让时间白白地浪费掉。 —— 邓拓

https://github.com/yanzhenjie/AndServer

https://yanzhenjie.com/AndServer

AndServer:Android 平台的 Web 服务器与框架

在移动开发中,构建轻量级的本地 Web 服务器或框架有时是必要的,例如在局域网中共享内容或搭建调试工具。AndServer 是一个专为 Android 平台设计的 Web 服务器与框架,它以简单、高效和灵活的特性,帮助开发者轻松实现 Web 服务功能。


什么是 AndServer?

AndServer 是一个 Android 平台的 Web 服务器和框架,支持 HTTP 协议和 Spring MVC 样式的开发模式。它让 Android 应用程序能够像 Web 服务器一样运行,提供 RESTful 接口、静态资源服务等功能。

核心特点:

  1. 嵌入式 Web 服务器:支持在 Android 应用中嵌入 HTTP 服务器。
  2. Spring MVC 风格:支持基于注解的控制器开发,使用简单。
  3. 多协议支持:支持 HTTP 和 HTTPS 协议,适配多种设备和场景。
  4. 高性能:基于高效的线程模型,能够处理高并发请求。
  5. 开源社区:持续更新,拥有活跃的开发者支持。

使用场景

AndServer 适用于以下场景:

  1. 本地调试工具
    搭建一个本地 Web 服务,用于调试或与其他设备交互。

  2. 局域网共享
    在局域网中共享文件或服务,无需额外的服务器。

  3. 物联网(IoT)设备
    为 IoT 设备提供 Web 接口,用于配置和数据传输。

  4. 轻量级 Web 服务
    在 Android 设备上运行 RESTful API 或静态网站。


快速上手指南

以下是使用 AndServer 的基本步骤:

1. 添加依赖

在项目的 build.gradle 文件中添加以下依赖:

1
implementation 'com.yanzhenjie:andserver:2.1.8'

2. 创建控制器

通过注解定义一个简单的控制器:

1
2
3
4
5
6
7
8
9
@RestController
@RequestMapping(path = "/api")
public class ApiController {

@GetMapping(path = "/hello")
public String sayHello() {
return "Hello, AndServer!";
}
}

3. 配置服务器

配置并启动服务器:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Server server = AndServer.webServer(this)
.port(8080)
.timeout(10, TimeUnit.SECONDS)
.listener(new Server.ServerListener() {
@Override
public void onStarted() {
Log.i("AndServer", "Server started successfully.");
}

@Override
public void onStopped() {
Log.i("AndServer", "Server stopped.");
}

@Override
public void onException(Exception e) {
Log.e("AndServer", "Server exception: " + e.getMessage());
}
})
.build();

server.startup();

高级功能

1. 静态资源服务

AndServer 支持提供静态资源服务,可以用于托管 HTML、CSS 和 JavaScript 文件:

1
2
3
4
@Assets(path = "/static")
public class StaticController {
// 自动映射 /static 路径下的文件
}

2. HTTPS 支持

通过配置 SSL 证书,AndServer 可以支持 HTTPS 协议:

1
2
3
4
Server server = AndServer.webServer(this)
.port(8443)
.ssl(new Ssl("path/to/keystore.jks", "keystore-password", "key-password"))
.build();

3. 文件上传与下载

支持处理文件上传和下载请求:

1
2
3
4
5
6
7
8
9
@PostMapping(path = "/upload")
public String uploadFile(@RequestParam("file") MultipartFile file) {
// 保存上传的文件
}

@GetMapping(path = "/download")
public File downloadFile() {
return new File("path/to/file");
}

社区与支持

AndServer 是一个活跃的开源项目,目前在 GitHub 上拥有 3789 个星标773 个分支,受到开发者社区的广泛关注。你可以通过以下方式获取更多支持:

  • 访问项目主页GitHub 仓库
  • 官方文档AndServer 文档
  • 提交 Issue:报告 Bug 或提出功能建议。
  • 贡献代码:通过 Pull Request 为项目做出贡献。

适用项目

AndServer 适合各种类型的 Android 项目,特别是在以下场景中表现出色:

  1. 调试工具开发:为调试和测试提供本地 Web 服务。
  2. 局域网应用:如文件共享或本地服务。
  3. IoT 设备管理:为智能硬件提供简洁的 Web 配置界面。

结语

AndServer 是一个功能强大且易于使用的 Web 服务器和框架,专为 Android 平台设计。无论是用于本地调试,还是为 IoT 设备提供 Web 服务,AndServer 都能满足你的需求。如果你正在寻找一个高效的 Android Web 服务解决方案,不妨试试 AndServer!它将为你的项目带来更多的可能性。