前言

Termux是 Android 设备上的一款终端扩展软件,可以用来扩展 Android 设备上被阉割的 shell 功能,开源且不需要 root(工作空间就在app的私有目录下),它支持 apt 管理软件包,并拥有自己的 apt 仓库源。
Termux 会维护他们的软件仓库源,仓库里有很多常用的软件包,比如说 curl, python 等等,因此可以实现支持 Python, PHP, Go, Nodejs, MySQL 等的功能环境。

作者:苍耳叔叔
链接:https://juejin.cn/post/7054743435562975262

简单使用

Termux 的GitHub仓库地址,可以在这里面查看安装方式。安装成功后第一次打开它会下载解压 bootstrap 包,主要用来在应用的私有目录下设置一个类 Linux 的文件结构,并设置环境变量等等。初始化完成后在 termux app 的私有目录下会解压出以下文件结构:

初始化完成后可以看到它就是一个 Linux Terminal 一样的界面,可以在里面跑 shell 命令了。然后还可以通过 apt 来安装管理软件,记得先 apt update 更新一下哈~

小火车

接下来试试在 Android 手机上的小火车效果,作为一个懒人,当然是直接使用现有的轮子了。
通过 apt 安装 sl 包:

$ apt install sl

如果嫌弃手机输入命令太麻烦的话可以借助 adb 通过电脑输入(记得切换输入法为英文哦):

$ adb shell input text 'apt\ install\ sl'

安装完成后执行 sl 命令即可看到一只可爱的小火车啦:

其他用法

一些没用但看起来有意思的命令

除了上面的小火车,还有很多有意思的命令,其中有些 Termux 也是支持的:
比如说黑客感的 cmatrix 命令:

$ adb shell input text 'apt\ install\ cmatrix'

效果:

比如说俄罗斯方块(跟扫雷一样适合上班摸鱼):

$ adb shell input text 'apt\ install\ bastet'

效果:

通过ssh在电脑上连接termux

有需要的话可以通过 ssh 在电脑上连接你的 termux 终端,然后在电脑 terminal 上操作。网上有很多教程,这里就懒得抄了。

把termux嵌入你的app

记得 19 年刚毕业的时候,遇到一个需求需要在我们的 app 里执行 python 脚本,由于一些原因不能在服务器上运行,只能在本地执行,因此需要在 app 上嵌入 python 环境,考虑之后决定使用 termux, 通过当时的一些线上数据,发现它的兼容性确实还可以。

做这个之前得先了解一下 termux 的实现原理,之前有简单记录过(最新版可能有所修改),直接贴链接: Termux解析

简单来说就是在初始化的时候会下载并解压一个 bootstrap 包到应用私有目录的 files 下,其文件结构大致如下:

bootstrap-aarch64├── SYMLINKS.txt├── bin├── etc├── include├── lib├── libexec├── repo.asc├── share├── tmp└── var

对 linux 比较熟悉的同学估计会觉得很面熟~然后 fork 子进程,并开启终端,设置环境变量,创建符号链接等等。

采取的方案是把 termux 终端等冗余的逻辑都去掉,只留下核心的 shell 功能,抽出一个用来接收命令输入和返回结果的工具类,并简单实现了一个连接池,并行接收命令。

两个挑战:

1.termux 提供的 bootstraps 包以及 apt 仓库源里的软件们都是跟他们的包名 com.termux 绑定的,因此需要自定义包名并重新编译。

解决办法:重新编译,参考之前的笔记 termux-app修改包名,在 docker 里把这些 apt 仓库源里的软件重新编译了一份,并在公司的服务器上搭建了一个 apt 仓库源,然后自定义打包一个 bootstrap 包,让其能通过 apt 去自定义的仓库源里安装 python。

2.从下载 bootstrap 到安装 python 一整套流程需要下载的量有几十兆了,所以给自己提了个需求,缩减下载量。

解决办法:从需求目的上来看,我需要的只有 python 环境,什么 apt 之类的都只是下载安装 python 的手段,因此最后我去掉了 apt 的能力,直接把 python 打包进 bootstrap 包,并裁剪了 bootstrap 里一些非必要的能力,最终用户只需要下载 6M 左右的包。

写在最后

很多同学应该都玩过 Termux, 我个人觉得还是比较有意思的,大家都知道 Android 上的 shell 是阉割后的,而 Termux 可以在一定程度上使用 linux 的一些能力,还原 Android shell 的部分功能,甚至还可以在 app 里嵌入它来实现一些非常规的能力,喜欢折腾的同学可以试试~

以上这篇文章的全部内容了,感谢各位的阅读,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎扫描关注博主一起学习!!
还有一些学习福利送给大家,有需要可扫描下方二维码免费领取

详细整理扫描下方二维码直接领取;

【Android】Termux安装与使用相关推荐

  1. Android手机中使用Termux安装ubuntu系统

    一. Termux 1. Termux简介 Termux 是一个 Android 终端仿真应用程序,用于在 Android 手机上搭建一个完整的 Linux 环境. 不需要 root 权限 Termu ...

  2. 在Android手机上使用Termux安装ubuntu

    Termux 1. Termux Termux 是一个 Android 终端仿真应用程序,用于在 Android 手机上搭建一个完整的 Linux 环境. 不需要 root 权限 Termux 就可以 ...

  3. termux配置python安装kali_安卓用termux安装kali linux教程

    Termux是一个Android下一个高级的终端模拟器,开源且不需要root,支持apt管理软件包,十分方便安装软件包, 完美支持Python, PHP, Ruby, Go, Nodejs, MySQ ...

  4. Termux 安装openSsh

    Termux 安装openSsh #安装OpenSSH $ pkg install openssh#运行SSH Server $ sshd#设置密码 $ passwd #获得Android IP $ ...

  5. 安卓用termux安装kaliLinux教程

    ​Termux是一个Android下一个高级的终端模拟器,开源且不需要root,支持apt管理软件包,十分方便安装软件包, 完美支持Python, PHP, Ruby, Go, Nodejs, MyS ...

  6. termux安装java_把安卓手机性能发挥到极致之-Termux运行Java及性能测试

    (一)常规思路 由于Termux团队的设计理念,默认情况下JDK是不能安装进Termux的(当然有替代的安装方案,太麻烦,我就不用了),所以ecj成为代替品.由于安卓不认识.class文件,还需要安装 ...

  7. Termux安装与配置+python环境配置

    Termux安装与配置 系统要求 Android 7.0以上的平板或手机.2G以上可用空间 Termux安装 在安装Termux前,需要了解一下什么是Termux.Termux 是一款支持 Linux ...

  8. Termux安装完整版Linux(Ubuntu)详细步骤

    一.Termux 1.Termux简介 Termux是 Android 平台上的一个终端模拟器,之所以称它为"模拟器"而非"虚拟机",是因为它并非像 PC 端的 ...

  9. Android预安装可卸载程序

    /****************************************************************************** Android预安装可卸载程序* 说明: ...

  10. 大体了解Android应用安装过程及原理

    Android应用安装的流程及路径: 应用安装涉及到如下几个目录: system/app               系统自带的应用程序,无法删除 data/app                  ...

最新文章

  1. 洛谷 P2574 XOR的艺术
  2. GridView 72 般绝技
  3. 小米小爱蓝牙音箱_小米小爱蓝牙音箱——值否?
  4. Java面向对象(9)--方法的重写(override/overwrite)
  5. leetcode283. 移动零 比官方更好的解法。
  6. 平行空间怎么设置32位_高低床怎么设置不占空间
  7. 【线性代数本质】2:线性组合和线性相关和线性无关以及张成的空间
  8. c语言k歌4.0编程,一次在线K歌玩法的尝试
  9. [转]:xmake工程描述编写之选择性编译
  10. JavaScript中的try...catch...finally
  11. 英文操作系统中的乱码问题及其它
  12. 计算机操作系统慕课版(汤小丹)--第一章课后题
  13. 沧小海基于xilinx srio核的学习笔记之第四章 Xilinx SRIO的示例分析(二)
  14. 碳足迹计算器ios版总结
  15. 5V转24V差分信号转TTL电平脉冲信号隔离变送器
  16. 从日文输入法项目看心理模型和实现模型
  17. 常见的安全产品与服务整理
  18. 60+最佳免费 WordPress 主题 – 完整列表(2021年)
  19. 无法重命名文件夹,错误0x80004005 未指定的错误
  20. 机器学习项目实战-能源利用率1-数据预处理

热门文章

  1. 记java开发实习生面试总结
  2. java.io.ioexception: 你,java.io.IOException: 你的主机中的软件中止了一个已建立的连接。...
  3. 华为eNSP模拟器中路由器设置密码+空闲时间
  4. maya原创mel插件缺少新版linkDll_2024版本库更新
  5. (转)证券行业科技实践与前瞻
  6. java计算机毕业设计装修设计管理系统设计与实现MyBatis+系统+LW文档+源码+调试部署
  7. 小米note2是android9,小米Note2 lineage16 安卓9.0 极致省电 纯净 完美root Xposed 经典版...
  8. Win10下安装 Redis
  9. Java - A Guide to the ExecutorService
  10. keil u5无法输入中文 输入汉字乱码