【图文详解】Android手机系统精简 搭建Linux集群硬件环境 Jdk运行HelloWorld
1、序言
经过多日的折腾,终于有点小小成就!期间反反复复,多次尝试,有好几次都有了放弃的念头;但最终还是坚持了下来,仔细学习研究的文章有好几十篇,各种工具到处找。为了总结经验教训,也为了有同样需求的朋友少走一点弯路,很有必要把这个过程记录下来,供大家参考!
- 很重要的一条经验,也算是教训吧:完美主义有时候真害死人,不要在一个地方死磕,你实现不了的,也许别人也实现不了,因为目前根本就没有这样的条件。如:
- Termux 在 Android5.1 下安装 CentOS,找不到合适的源。(准确地说应该是在Android7以下)
- LinuxDeploy 中安装 Docker,可以安装成功,但不能运行;看到有人成功了,但效率低下,所以放弃了Docker。
成就展:(呵呵…)
2、Android5.1系统
1)BusyBox
+LinuxDeploy
方案
手机要root,必须的;否则
Linux Deploy
无法使用;只要手机root后,在更低版本上应该也可以安装
(1)root手机
这一步比较痛苦,但又是必须的。root成功后,手机上能删尽删,能冻结的尽量冻结,给后面的安装运行留下尽可能多的操作空间和性能提升。
以金立F100A手机为例;只有1G的内存,精简后相当的流畅;精简后的模样。
关于系统的精简,有单独的文章讲解。
【图文详解】RE文件管理器手工精简Android系统
(2)安装BusyBox
- 点左上角三横杠进入
- 设置完成后,点左上角返回箭头,开始安装;如果还是英文,可以退出后重新进入,就变成中文了
(3)安装LinuxDeploy
过程简单,可以参考下面博客
- Linux Deploy 安装与使用 - coolape - 博客园 (cnblogs.com)
- PATH变量
/system/xbin
- PATH变量
(4)安装 CentOS
- 尽量用默认的源
http://mirror.centos.org/altarch/
- 如果默认源不行,可以试试这两个:
- http://chinanet.mirrors.ustc.edu.cn/centos-altarch/
- http://mirrors.aliyun.com/centos/
- 安卓手机架构一般是
aarch64
- 安装路径 :安装在手机自带的存储空间中,则在路径开头加上
${ENV_DIR}
;安装在 sdcard 中,加上${EXTERNAL_STORAGE}
- 开启
SSH
- 点Linux Deploy左上角的三个横杠进入;修改配置文件名称,然后配置 Liunx Deploy
- 修改配置文件名称,然后返回
- 配置 Liunx Deploy,然后返回
- 配置 CentOS,然后返回
关于挂载的补充说明
- 设置挂载:挂载目录如果不存在的话,会自动创建
# Android机系统路径
/storage/sdcard0/xxx
# 外部扩展卡路径
/storage/sdcard1/xxx
# CentOS中路径
/usr/local/xxx
- 手机Android中的目录结构:
/sdcard/mycentos
- CentOS 中的目录结构:
/mnt/myapp
- 启动:如果添加挂载点之前已经安装好CentOS,就不需要重新安装。依次清空、配置、启动即可
测试挂载:两端都可以操作,是双向的
Android中添加,CentOS中删除
CentOS中添加,Android中删除
挂载的一个用途:利用SSH连接向手机传送文件 rz
指令
- 点Linux Deploy右上角的三个点进入,配置、安装
- 启动CentOS
- SSH连接
(5)安装Java运行环境
此时可以用ssh方式在电脑上操作
具体安装方法参考: 【Linux】6、软件安装:rpm、压缩包、yum_土味儿~的博客-CSDN博客
想在CentOS中安装Docker,可以安装,但反复尝试运行不成功;看到有人运行成功,但性能很低,所以就放弃了Docker,改为安装Java运行环境,直接运行Jar包。
选择与系统架构一致的jdk,否则运行时会提示
无法执行二进制文件
;如:jdk-8u321-linux-aarch64.tar.gz
ssh远程安装jdk;上传指令
rz
,如果没有rz
指令,用yum install lrzsz -y
安装rz
上传参考于:xshell 使用命令上传、下载文件 - 七星瓢虫6 - 博客园 (cnblogs.com)
配置java环境变量;配置文件:
/etc/profile
,可以用vi /etc/profile
命令,在profile文件的最后加上# jdk1.8.0_321就是java的安装目录,该目录下有bin,bin下有java...等命令;最后不要加/ JAVA_HOME=/usr/local/java/jdk1.8.0_321# 各参数中间用冒号分隔,不是分号。最前面有. CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/jre/lib/rt.jarexport PATH=$PATH:$JAVA_HOME/bin
让环境变量生效
# 以下两条命令执行一条即可;二者等价 source /etc/profile. /etc/profile
(6)运行jar包
2)Termux
方案
由于Android版本太低,很多源不支持,导致Termux下安装CentOS不成功;放弃
3、Android7以上系统
Android7以上版本,可以采用下面两种方案,不用root,有比较多的源支持,相对简单,暂时省略
1)Termux方案
2)Aidlux方案
【图文详解】Android手机系统精简 搭建Linux集群硬件环境 Jdk运行HelloWorld相关推荐
- linux地柜查找文件_图文详解 文件柜内DIY自己的Linux集群机
专业3D图形渲染中需要进行大量的浮点运算(包括物理实体.几何转换.剪切.光效,以及三角形设定)和整数运算(包括三角形设定和像素渲染),是一项CPU密集型任务,通常处理这项繁重任务的一个办法就是使用计算 ...
- Hadoop详解(五)——ZooKeeper详解,ZooKeeper伪分布搭建和集群搭建,Hadoop集群搭建,sqoop工具的使用
ZooKeeper简介 什么是ZooKeeper? ZooKeeper是Google的Chubby一个开源的实现,是Hadoop分布式协调服务. 它包含了一个简单的原语集,分布式应用程序可以基于它实现 ...
- VMware搭建分布式集群基础环境
VMware搭建分布式集群基础环境 1. 前言 在日常学习.工作当中,我们经常需要用到分布式集群环境,如zookeeper集群.redis集群.大数据集群等,而通常并没有那么多的物理机器可以使用,因此 ...
- 如何基于Jupyter notebook搭建Spark集群开发环境
摘要:本文介绍如何基于Jupyter notebook搭建Spark集群开发环境. 本文分享自华为云社区<基于Jupyter Notebook 搭建Spark集群开发环境>,作者:apr鹏 ...
- 基于VMWare虚拟机搭建Linux集群
基于VMWare虚拟机搭建Linux集群 1.虚拟机的安装 2.下载CentOS系统 3.虚拟机安装CentOS系统 4.虚拟机和本机文件通信 5.虚拟机网络配置 6.本机物理机下载Xshell连接操 ...
- sqlserver故障转移集群和alwayson的区别_详解SQL Server 2016 + AlwaysOn 无域集群
搭建 WSFC 配置计算机的 DNS 后缀 1.配置计算机的 DNS 后缀,注意在同个工作组 2.每个节点的机器都要做域名解析,修改 host 文件C:WindowsSystem32driverset ...
- centos7搭建Linux集群,CentOS 7下Kafka集群安装
一.环境操作系统和软件版本介绍 1.环境操作系统为CentOS Linux release 7.2.1511 (Core) 可用cat /etc/RedHat-release查询 2.软件版本 Kaf ...
- Centos8 搭建linux集群
Centos8.2服务器 (三台) Xshell7(成功连接三台服务器) 2.搭建前的准备 以下代码均在Xshell7下执行 更改主机名(所有服务器都执行) hostnamectl set-hostn ...
- 深入浅出 详解Android Surface系统(1)
文章来自:http://mobile.51cto.com/android-259922.htm 本文详细介绍了Android中的Surface系统,采用情景分析的办法,详解了何为SurfaceFlin ...
最新文章
- sd.js帮助您简化繁重的获取数据、存储数据(CRUD)骚操作(吐槽~在安卓9.0以下或者IOS10.X以下手机端H5页面不支持,在这两种情况下的系统只能使用ajax或者原生js请求后台数据)
- [置顶] Android面试题目之二:整形转换为字符串
- 在linux中进程表示的是,Linux进程的表示
- 对象 普通po转_谈谈C++对象的构造
- 全网首个OpenPrompt尝鲜报告:Prompt研究者必备实验利器
- 通过XmlSerializer 实现XML的序列化与反序列化
- 【leetcode】Search for a Range
- HBase-再看HBase
- 用doxygen自动生成文档
- 毕设日志——下一步计划2019.4.17
- Objective-C 中 NULL、nil、Nil、NSNull 的定义及不同
- 我用 CSS 告诉你,我每天是怎么度过的~
- jboss7学习2-jboss7入门(端口和访问的ip问题)
- mongodb 导出txt_MongoDB导出软件
- 数字相控阵雷达的优势(Benefits of Digital Phased Array Radars)1
- SQL注入语句(详细)
- 珊瑚橙怎么配色配色?橙色优学教你如何玩转2019年度流行色
- 伊斯坦布尔之旅第一天:蓝色清真寺和圣索菲亚博物馆
- 饥荒独立服务器在线模式收不到,Windows 服务器搭建Don’t Starve Together饥荒独立服务器教程...
- 英语时态:一般、否定疑问句、现表将来(中文练到无停顿)
热门文章
- 【总结】1296- 总结 12 个常见移动端 H5 与 Hybrid 开发问题
- “缴费”和“交费”的区别
- linux概述及环境搭建
- 用文心大模型生成剪纸风格的城市插画
- 矩阵的主元+秩+矩阵等价
- win7matlab2016启动闪退,大白菜修复win7系统启动matlab出现闪退的图文方案
- 在html中对页面大小的设置吗,网页设计一般页面尺寸怎么设置呢?
- [开源][130522]DIY简易红外遥控信号发射器
- C语言外推法求搜索区间程序,一维搜索外推法程序设计实验报告.doc
- c语言编程输出主析取范式,c++编程:从键盘上任意输入一个主析取范式,输出与之等值的主合取范式...