安卓手机 Linux 模拟器 Termux 之 Ubuntu兼容性测试


Termux 是一个安卓终端模拟器兼Linux环境的APP,它可以直接运行在没有root的安卓设备上,具备基本的系统结构,可以通过APT命令进行包的安装。

Termux 上 Ubuntu 各版本兼容性测试

测试设备:[A]HTC ONE M8ST(Android 6) / [B]360青春Q1(Android 5)
经测试 Android 7.0+ 系统几乎不存在兼容性问题,故本文只针对 Android 7.0以下的设备进行测试

1. 为什么需要在 Termux 里面跑虚拟的 Ubuntu?

Termux 自身虽为一个终端系统且有部分Linux结构,但是终究不算完整的Linux系统,当我们开发中使用到某些组件时,也许会遇到异常报错,故直接采用有完整结构的发行版系统进行项目的运行,本文使用的是 Ubuntu。

2. 常用 Ubuntu 系统及版本

截图源于 Tmoe Proot下安装Ubuntu界面
Tmoe-tools 是一个快速安装系统的一键工具,支持诸多容器、系统、桌面的安装(Ubuntu、Kali、debian、Centos、Windows、Docker等等)

术语解释

  • proot 未root设备(模拟root权限)
  • chroot 已root设备

推荐安装新版系统,不建议太旧的系统,可能会出现一些未知错误。

  • Ubuntu 18.04 (Proot)

    • 默认python2.7 / Python 3.6
    • 系统整体响应缓慢,一句命令都要响应一会,盲猜系统结构不完整
    • 设备A、B均命令执行缓慢
  • Ubuntu 20.04 (Proot)

    • 默认 python 3.8
    • 响应较 18.04 快了许多
    • 设备A基本正常
    • 设备B安装完成之后,pip3 安装软件报错ssl问题,各种尝试无法解决
    • 若使用该版本推荐使用 Ubuntu 20.04 某大神版本,异常问题更少
  • Ubuntu 21.10 (Chroot)

    • 默认 python 3.9
    • 设备B目前正常使用
    • 推荐使用该版本

termux 直接运行 neofetch 结果

chroot 下安装 ubuntu 信息

3. 关于系统安装之后无法读取 /proc 问题

proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。用户和应用程序可以通过proc得到系统的信息,并可以改变内核的某些参数。由于系统的信息,如进程,是动态改变的,所以用户或应用程序读取proc文件时,proc文件系统是动态从系统内核读出所需信息并提交的。

分析 根据报错定位问题在于挂载文件失败,故重新挂载该设备

mount  proc /proc -t proc
  • 若系统重启之后问题依旧,可以写入到 .bashrc 开机进入系统之后自动调用进行挂载
  • 判断是否存在/proc挂载问题 (htop任务调度工具 查询是否有内存相关信息)
  • cat /proc/stat # 查询内存、cpu

声明:Grows towards sunlight |版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - 安卓手机 Linux 模拟器 Termux 之 Ubuntu兼容性测试


Grows towards sunlight and Carpe Diem