在Android手机上搭建一个http服务器 - 技术分享 - 五行资源分享网

在Android手机上搭建一个http服务器

作者头像图片

作者: 五行

网络资源搬砖的爱好者。

文章二维码手机扫码查看

标签:

手机搭建

特别声明:文章多为网络转载,资源使用一般不提供任何帮助,如有侵权请联系!

看到标题是不是有点懵,在Android手机上搭建一个http服务器???

在Android手机上搭建一个http服务器-五行资源分享网-第1张图片

没错,我们就是要在Android手机上搭建一个http服务器。提到http服务器一般第一反应是Apache,nginx

Android上也能运行Apache,nginx了???

Android手机上当然不能运行这些服务器了,这次在Android上运行的是用Golang写的一个简单的http服务器。因为Golang可以跨平台编译,我尝试着把系统选择成Linux,CPU架构选择arm,然后在手机上运行,然后Android手机上真的运行起了一个http服务器

在Android手机上搭建一个http服务器-五行资源分享网-第2张图片

回到正题,要想开发编写golang,首先要配置好golang的开发环境,golang的配置传送门

我是在Ubuntu下开发的,新建service.go文件

  1 package main
  2 
  3 import (
  4         "net/http"
  5        )
  6 
  7 func main() {
  9     http.HandleFunc("/",myResponse)
 10     http.ListenAndServe("127.0.0.1:8888",nil)
 11 }
 12 
 13 func myResponse(w http.ResponseWriter,r* http.Request)  {
 14     w.Write([]byte("<html><center> <font size="40">hello I am go service</font></center></html>"))
 15 }

 

不熟悉go的同学注意下,不要随意回车换行 不要随意回车换行 不要随意回车换行 因为go有点像Python,不是用 “;” 结束的

简单解释一下

http.HandleFunc("/",myResponse)第一个参数是注册http服务的URL,这里我们填写"/",在访问的时候直接localhost:8888 就行了,如果填"/test"访问的时候URL为localhost/test:8888"

http.ListenAndServe("127.0.0.1:8888",nil)第一个参数是要监听的ip和端口,第二个填nil就好了

然后编译运行试试,在本机上运行的程序用默认的编译参数就行go build service.go

然后运行./service

浏览器中输入URL,成功访问到

在Android手机上搭建一个http服务器-五行资源分享网-第3张图片

 

下一步我们把这个程序移植到Android上,Android手机必须要有root权限,手机没有root,而又不想root的同学可以用模拟器,只要CPU的指令集参数改一下就行,先在手机上运行一下,我的手机是荣耀6,CPU是海思920,百度到海思920的指令集是arm32的,好的,编译一个

在编译之前我们先修改一下刚才编译的程序的名

执行GOOS="linux" GOARCH="arm" go build service.go

得到一个可执行文件,用file命令看一下file service

service: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), statically linked, not stripped

我们看到这个文件是一个32位的arm程序。ok,复制的Android手机上试试

需要用到的软件

在Android手机上搭建一个http服务器-五行资源分享网-第4张图片

 

“juiceSSH”是用来模拟Linux的shell命令的,“RE文件管理器”用来修改文件的权限,在Android上chmod命令不起作用。

先复制到根目录

然后修改文件的权限

在Android手机上搭建一个http服务器-五行资源分享网-第5张图片

在Android手机上搭建一个http服务器-五行资源分享网-第6张图片

 

然后在juiceSSH里运行,然后去浏览器输入URL看看,

在Android手机上搭建一个http服务器-五行资源分享网-第7张图片

 

没问题

接下来编译一个模拟器上的,我用的genymotion,运行的是Google nexus5手机系统,我百度了一下,nexus5用的是高通骁龙800CPU,然后坑来了,骁龙800是arm32的指令集,按理说直接把那个程序复制进去就可以运行了,但是提示/system/bin/sh: ./service_arm32: not executable: 32-bit ELF file

后来想了想CPU用的是电脑上的,那编译成X64的试试。还是不行,换成X86的试试。终于成功了。原来是指令要用电脑CPU的,多少位需要模拟器的。

执行GOOS="linux" GOARCH="386" go build service.go

复制到模拟器中,然后跟在手机一样,复制到根目录,添加权限。然后用adb shell运行,然后在模拟器的浏览器中发现可以访问

在Android手机上搭建一个http服务器-五行资源分享网-第8张图片

 

好了,我们已经在Android上运行一个http服务器了,是不是比较简单

本文最后更新于2019-8-5,已超过 1 年没有更新,如果文章内容或图片资源失效,请留言反馈,我们会及时处理,谢谢!
分享到:
打赏
未经允许不得转载:

作者: 五行, 转载或复制请以 超链接形式 并注明出处 五行资源分享网
原文地址: 《在Android手机上搭建一个http服务器》 发布于2019-8-5 12:52
帖子声明: 本站对文章进行整理、排版、编辑,是出于传递信息之目的, 并不意味着赞同其观点或证实其内容的真实性,不拥有所有权,不承担相关法律责任。

评论

在线链接输入图片 打卡按钮图片 私密评论按钮图片 29 + 84 =
乱评论、多次评论者一律禁言帐号或封禁IP
本站已经全面开启缓存,评论查看隐藏内容需等待1分钟后再刷新本页!

 

觉得文章有用就打赏一下文章作者

微信扫一扫打赏

打赏图片