前言

最近给家人换了一台新手机,而旧手机难道就低价回收了吗?作为曾经的一名安卓工程师,这些旧手机对我都有一定的价值。于是我把手机刷机,想看看还能干啥用,突然想到安卓底层是Linux内核呀,应该可以在其上部署一个小型的Linux系统出来当服务器用。于是本人查资料后发现,果然有开源的项目能够做到。这样就可以将Android手机当作一台Linux服务器用,搭建一个J2EE项目了。

下面以我本人的搭建经历,讲解搭建服务器的主要过程,全部自己亲测。

平台

  • 手机型号:红米Pro全网通
  • CPU架构:ARM(一定要清楚CPU的架构,与安装的Linux发行版和软件包对应)
  • 运存内存:3G+32G(运存最好2G以上)
  • Linux部署:Linuxdeploy | Ubuntu 18.04 LTS x64

准备工作

一、刷机并Root:

当前有两个开源应用能够实现Linux环境搭建,分别如下:

1、Linuxdeploy:采用chroot容器技术,能够安装各种Linux发行版,运行稳定,如Ubuntu、CentOS等,很完善,但是手机需要Root。

2、Termux:极低的性能损耗,驱动Linux底层内核模拟终端,能够通过apt安装python等软件包,并且不需要Root。但是本身并不完整,一些Linux的重要软件仍然不能安装

3、Aid Learning:类似于Termux,但是更纯净,能安装的软件也更多,自带图形界面一个VS Code等软件,但是比较吃性能,我不需要图形界面也不需要杂七杂八的软件。所以我还是打算将手机Root并使用Linuxdeploy。

至于具体手机怎么Root,就不多说了,网上大把的资料,但是要先记得解锁哦。

二、安装Busybox:

Busybox号称安卓的“瑞士军刀”,它对安卓底层缺乏的Linux命令作了补充,就像对底层添加了灵魂,让手机具有真正成为Linux系统的潜质。由于本人使用ROM刷机包集成了Busybox,就直接跳过了这一步,大家就自行查资料安装配置Busybox应用即可,也可以通过刷具有Busybox的第三方的ROM包集成。

步骤

一、安装Linuxdeploy和Linux系统镜像:

视频教程:https://www.bilibili.com/video/BV1oA411b7Fb/?spm_id_from=333.788.videocard.0

这个教程讲的精简,我也是这样做的,但是要提以下几点:

1、操作系统架构一定选对,手机CPU一般都是ARM架构,可以通过安兔兔或网上查询你手机的CPU型号确认。
2、镜像最好用国内的,下载稳定不会中途卡住:http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/

镜像安装成功后,开启Ubuntu,打印界面信息如下:

二、安装JDK并配置环境变量:

JDK是J2EE最重要的东西了,不多说,官网直接下对应的CPU架构版本:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

解压到自己指定的系统目录,并配置JDK环境变量

vi /etc/profileexport JAVA_HOME=/home/lzy/env/jdk1.8.0_261   (使用自己的目录)
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATHsource /etc/profile

三、安装MySQL服务

由于手机CPU是ARM架构,所以必须使用ARM版本的MySQL,而官网并没有给出资源,可以用apt软件包去下载:

apt-get install mysql-server
apt-get install mysql-client
apt-get install mysql-common

解决Android的网络权限分组问题:

usermod -a -G aid_inet,aid_net_raw mysql
cat /etc/group

启动、重启和关闭MySQL服务

service mysql start      # 启动服务
service mysql restart    # 重启
service mysql stop       # 停止服务
service mysql status     # 查看服务运行状态

启动MySQL服务后,开启远程访问,以root用户为例

mysql>use mysql;
mysql>select user, host from user;
mysql>update user set host='%' where user='root' and host='localhost';
mysql>flush privileges;
mysql>exit;

四、安装Maven

作为搭建Maven项目使用,在apache官网上下载Linux版本的Maven:https://maven.apache.org/download.cgi

解压包配置环境变量:

tar -xvzf apache-maven-x.x.xx.tar.gz /home/lzy/env/apache-maven-3.6.3
vi /etc/profile# 在最后添加
export MAVEN_HOME=/home/lzy/env/apache-maven-3.6.3
export PATH=$MAVEN_HOME/bin:$PATHsource /etc/profile# 测试
mvn -v

五、安装Tomcat并启动服务器

安装的话,由于Tomcat 8有免安装包,去到apache tomcat官网上下载Tomcat 8的免安装包,然后解压到指定目录即可。

启动Tomcat服务:

chmod 777 -R tomcat/      (用自己的安装目录)
cd tomcat
cd bin
./startup.sh                    # 启动Tomcat服务器
tail -f ../logs/catalina.out    # 查看实时日志

到此,Linux的服务器搭建完成,在局域网上就可以访问了。若自己有J2EE项目,只需把项目打成war包,并拷贝到webapps文件夹下,重启tomcat服务器即可。

六、内网穿透

内网穿透主要是为了能够让外网访问到自己的处于局域网中的安卓服务器,如果想把自己的Demo给朋友们演示(炫技),让他们通过互联网远程访问到你的网页。就需要使用内网穿透服务来搭建隧道,实质是通过一个隧道服务器作为代理,将内网的主机和外部网络建立长连接。具体搭建的步骤就不细说,网上有很多资料。

常用的内网穿透服务有以下几个:

  • Ngrok:老牌内网穿透服务,一键使用,不同类型的隧道收费购买
  • Natapp:高效的内网穿透服务,有免费隧道,但是域名不固定会随机更换,适合测试使用
  • 花生壳:国内比较有名的服务,解决无公网和NAT转换时,内网IP到外网域名的映射问题
  • FRP:免费开源的软件,但是隧道服务器需要有一台固定IP的外网服务器来搭建
  • **小米球Ngrok:**由一位博主利用闲置Ngrok服务器搭建的内网穿透服务,非常慷慨,项目演示时推荐使用

结束语

工作忙,抽出时间写文章不容易,还请多多给个赞,有问题可以评论交流

Android 搭建Linux服务器相关推荐

  1. 下载服务器 linux系统,如何搭建Linux服务器

    以Linux为基础的"LAMP(Linux, Apache, MySQL, Perl/PHP/Python的组合)"经典技术组合,提供了包括操作系统.数据库.网站服务器.动态网页的 ...

  2. android linux网络连接,Android和Linux服务器之间的TCP连接

    我正在编写一个代码,需要每秒从Android移动设备向台式计算机(linux服务器)发送数据.由于数据经常发送,通过Http命中无法实现(因为会消耗时间),所以Tcp通信似乎是更好的选择,因为andr ...

  3. 自建服务器系列-0元搭建linux服务器(windows笔记本)

    0元搭建linux服务器 一.windows装Centos7 1.1 centos7 iso镜像 1.2 准备U盘 1.3 UltraISO 启动盘制作工具安装 1.4 准备一台windows 机器 ...

  4. 从零开始搭建Linux服务器开发运行环境-详细步骤

    大家好,久违了! 时隔一年,我发表的上一篇博客年后第一更,谈谈收获及展望至今已快一年了,期间一直在忙没有时间写博客,原因就不细说了.由于我的个人云服务器到期了,所以我又买了一台阿里云的一年时长的ECS ...

  5. yolov5使用2080ti显卡训练是一种什么样的体验我通过vscode搭建linux服务器对python-yolov5-4.0项目进行训练,零基础小白都能看得懂的教程。>>>>>>>>>第二章番外篇

    第二章番外篇:yolov5通过vscode搭建linux服务器对python-yolov5-4.0项目进行训练,零基础小白都能看得懂的教程.YOLOv5搭建的最快搭建方式,踩坑经历详谈 前期准备: 2 ...

  6. 利用闲置笔记本电脑搭建linux服务器并布置自己的网站

    背景 一直想有一个云服务器,做一些感兴趣的事情,比如搭建一个个人网站,做一些linux上的验证实验,学一下Python等等. 之前申请了一个腾讯云服务器,但是到期后续费很贵,就不再使用了,刚好家里有一 ...

  7. linux firefox xvfb,持续集成:采用Xvfb+Selenium+Firefox搭建linux服务器下的自动化测试环境...

    自动化测试属于软件测试的一部分,QTP.LoadRunner等都可以编写自动化测试脚本,但是QTP.LoadRunner等工具毕竟还需要人工操作,在持续集成思想下,软件应该自动发布并且自动测试,这样可 ...

  8. 搭建linux服务器详细教程

    Linux服务器的部署,配置,搭建步骤: 1.准备: 1.1.jdk1.8:jdk-8u11-linux-x64.tar.gz tomcat:apache-tomcat-8.0.39-windows- ...

  9. 微信小程序--搭建linux服务器并部署java后端程序2021

    本文介绍:如何将java后端代码部署到阿里云的以CentOS7为操作系统轻量应用服务器上 前后历经一周时间搭建好服务器,成功在浏览器中访问后端代码,欣慰

最新文章

  1. 03 Django REST Framework 视图和路由
  2. 通过分析 JDK 源代码研究 Hash 存储机制
  3. Facade与Mediator模式的区别
  4. svn备份遇到的问题
  5. django mongodb mysql,Django MongoDB Django NoSQL方案
  6. nginx优化——包括https、keepalive等
  7. bottomTagFragment
  8. 邮件协议POP3/IMAP/SMTP服务的区别
  9. BSOD 又见BSOD。。。。
  10. [转载] python中set怎么循环_Python Set集合操作
  11. python dict.get 用法
  12. C++用cmath求平方根和次方
  13. 毕业两年工作三年小结
  14. 10 个常见的压力面试问题
  15. Typora结合Git打造完美的个人云笔记本
  16. 流体动力学—迹线和流线
  17. 西南科技大学学生邮箱申请
  18. VS2008+VP5开发环境配置
  19. 46家著名公司的技术类笔试真题
  20. JavaScript之美读书笔记一

热门文章

  1. K8S部署系统异常-FailedCreatePodSandBox:network: failed to set bridge addr: “cni0“ already has an IP addres
  2. Linux下干净卸载mysql详解
  3. 命名实体识别(二)——基于条件随机场的命名实体识别
  4. Oracle中的NVL()函数的用法
  5. mysql 格式化函数总结_Mysql字符串处理函数详细介绍、总结
  6. 【Python习题】简易英汉字典(project-ssss)(题目的坑解析+实现代码)
  7. linux复制操作 cp: -r not specified; omitting directory XXX 错误
  8. json.stringify()函数
  9. 笔记本AutoCAD启动时闪退怎么办_CAD启动就闪退的原因分析
  10. GIS空间数据格式简介