前言

在手机上搭建服务器?没错,我自己都会想哪里有人要在把手机当作服务器,不过,确确实实,由于一个项目,我需要这么干。 最初映入脑海的就是Socket原生编程了,直到后来发现了封装成http服务器端的AndServer框架!!!

导入依赖

 implementation 'com.yanzhenjie.andserver:api:2.0.5'
annotationProcessor 'com.yanzhenjie.andserver:processor:2.0.5'

开启网络权限

<uses-permission android:name="android.permission.INTERNET"/>

服务器管理类

package com.example.andservertest;import android.content.Context;
import android.util.Log;import com.yanzhenjie.andserver.AndServer;
import com.yanzhenjie.andserver.Server;import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.concurrent.TimeUnit;public class ServerManager {private Server mServer;private static final String TAG = "ServerManager";/*** Create server.*/public ServerManager(Context context) {InetAddress inetAddress = null;try {//这里的ip地址是手机的ip地址,可通过手机设置>系统->关于手机查看inetAddress = InetAddress.getByName("192.168.1.11");} catch (UnknownHostException e) {e.printStackTrace();}mServer = AndServer.serverBuilder(context).inetAddress(inetAddress).port(8080).timeout(10, TimeUnit.SECONDS).listener(new Server.ServerListener() {@Overridepublic void onStarted() {Log.i(TAG, "onStarted: 服务器启动");}@Overridepublic void onStopped() {Log.i(TAG, "onStopped: 服务器关闭");}@Overridepublic void onException(Exception e) {Log.i(TAG, "onException: 服务器出现异常"+e.getMessage());}}).build();}/*** Start server.*/public void startServer() {if (mServer.isRunning()) {// TODO The server is already up.} else {mServer.startup();}}/*** Stop server.*/public void stopServer() {if (mServer.isRunning()) {mServer.shutdown();} else {Log.w("AndServer", "The server has not started yet.");}}
}

测试用的Activity

package com.example.andservertest;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;
import android.view.View;
import android.widget.Button;public class MainActivity extends AppCompatActivity {private Button button1,button2;private ServerManager serverManager;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);button1 = findViewById(R.id.button_start);button2 = findViewById(R.id.button_stop);serverManager = new ServerManager(this);button1.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {serverManager.startServer();}});button2.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {serverManager.stopServer();}});}
}

Controller

@RestController
public class UserController {@GetMapping("/123")String login() {Log.i(TAG, "login: 收到消息");return "你好啊兄弟";}
}

由于电脑和手机使用的是一个宽带,所以自然而然就在一个局域网了
对刚才写的Controller进行测试

关于AndServer

具体使用,可以看作者写的文档,很详细,在这里就不再多说了
https://yanzhenjie.com/AndServer/sample/

【Android】 使用AndServer框架在手机上搭建服务器相关推荐

  1. ksweb如何安装php5.6_KSWEB在手机上搭建php+mysql环境

    ksweb是一款专业的开源服务器APP,可以在手机上搭建php+MySQL环境,内置了 lighttpd+nginx+apache+php+sql 等等功能,可以让你的手机瞬间变成服务器,兼容多数主流 ...

  2. android动态图制作,Android 教程:如何在手机上制作高质量的 GIF 图片

    相比于静态图片的一动不动,GIF 图片显得十分生动活泼,并且能表现一定的情节.虽然已经有 GIF 快手.美图 GIF 这类易用的 GIF 制作应用,但其有着诸多的限制,像时长.分辨率等都不可自行调节. ...

  3. android icloud云盘,现在 Android 用户也可以在手机上使用 iCloud 了

    在 2020 年为自家的云服务推出移动版网站还真是新潮呢 如果你是 Macbook 或 同时拥有 iPhone 手机的 Android 用户的话,那么一个好消息是,今天 Apple 终于为自家的云服务 ...

  4. 在手机上搭建一个小型服务器

    安装配置 - nginx : 1.14.2 - node.js : 8.19.3 1. 先将自己在电脑上的 vue项目打包 npm run build 2. 打开 aidlux 的文件管理器 如果不知 ...

  5. Android连接SQLServer详细教程(数据库+服务器+客户端)

    本文为原创,如果转载请注明出处 http://blog.csdn.net/zhyl8157121/article/details/8169172 其实之前发过一篇这样的博文http://blog.cs ...

  6. python手机运行器_MobileNet教程:用TensorFlow搭建在手机上运行的图像分类器

    王瀚宸 编译自 Hackernoon 量子位 报道 | 公众号 QbitAI 在移动端本地运行神经网络成了明显的趋势,Google还为此推出了MobileNet框架. MobileNet框架怎么用?C ...

  7. android处理服务器的集合,android集合SSH搭建服务器客户端请求

    android集合SSH搭建服务器客户端请求 (2012-06-14 06:21:53) 标签: android 服务器 杂谈 android集合SSH搭建服务器客户端请求小弟以前是学的J2EE,由于 ...

  8. android 音频在手机上测试播放不流畅问题

    今天看了视频<24考研全程复习规划>,背了50个单词,看了25%的<终身学习:哈佛毕业后的六堂课>,看完第一章<JAVA编程思想>.做了一道算法题,没做出来,看了讲 ...

  9. 来源com.android.atsmt,海量图片和心灵洗礼说与谁听?初页可以帮你在手机上制作H5页面了...

    H5页面定稿之后,很多人都在讨论,这个世界要被改变了.其实在规则最终确定之前,H5页面就已经在影响我们的传播方式.分享内容丰富程度和对手机创作的理解. 而云起团队推出的App初页,可能会让用户对手机创 ...

  10. android开发ssh框架搭建,基于SSH框架的Android系统的研究

    摘要: 本文设计开发了一个基于SSH框架的酒店Android手机查询系统.该系统采用面向对象的设计思想进行分析与设计,利用Eclipse,MyEclipse,Android SDK,Tomcat和My ...

最新文章

  1. Jpeglib读取jpg文件
  2. mysql5.5多实例配置_mysql-5.5.32多实例配置
  3. 行业薪酬大跳水 区块链真的凉了?
  4. linux 统计根目录下的文件日期和出现的频率
  5. tomcat启动成功 未加载项目_欣冠精密eHR系统项目成功启动
  6. Restlet Client 安装 网盘里面有压缩文件夹下载引用即可 谷歌浏览器
  7. 前端学习(2379):调整初始目录结构
  8. SQL Server 2014新功能 -- 内存中OLTP(In-Memory OLTP)
  9. 程序猿能力矩阵 — 敢測吗?看自己在哪个档次
  10. 【数字信号】基于matlab CEEMD数字信号分解【含Matlab源码 1383】
  11. vue - 生命周期
  12. BeanShell用法汇总
  13. 电力电子课程设计:简易密码控制装置
  14. ictclas怎么配置java_ICTCLAS2015 Java版本的使用方法
  15. 小工具推荐:tokei(高效统计代码行数)
  16. jquery attr设置属性失效问题
  17. 华三 h3c Rip、静态路由、silent-interface配置
  18. 简单说明JSP和Java的关系_JSP 总结
  19. 强大、优秀的文件管理软件评测:图片管理、书籍管理、文献管理
  20. 上线一月破千万,孙俪都是其粉丝,揭秘花粉儿APP的成长秘诀

热门文章

  1. 正式入职开发工程师工作近半年有感
  2. uniapp打包之后首页白屏
  3. 基于java民航售票管理系统源码(java毕业设计)
  4. 笔记_KMeans聚类
  5. java实现密码重置功能_如何实施密码重置链接
  6. 英语介词at、in、on常见用法(时间、地点、方位)
  7. 线程池 - 还可以这么理解?
  8. ATX结合Maxim实现多设备并行执行压力测试(AUI自动化测试框架)
  9. 安科瑞无线测温方案part1
  10. 全年爆文率14%+,这个小红书品牌的内容营销密码是什么?