转载请注明出处:小锋学长生活大爆炸[xfxuezhagn.cn]如果本文帮助到了你,欢迎[点赞、收藏、关注]哦~
最近学长再翻 GitHub 的时候,发现了一个挺有意思的开源项目:Tiny Computer,中文名叫「小小电脑」。它的效果第一眼很容易让人以为:一台安卓手机安装了Windows的桌面,包含了任务栏、开始菜单、窗口管理器,甚至还能安装 微信、WPS、CAJ Viewer、亿图图示等这类 PC 级应用。
可以先看几张图感受一下:



口袋里的「PC 应用引擎」
「小小电脑」(tiny_computer) 是由开发者 Cateners 开源的 Android 应用,定位是给所有 ARM64 安卓设备的「PC 应用引擎」平替。它在 GitHub 已获得 3.5k+ Stars。核心能力一句话概括:在普通安卓手机上,零门槛运行完整的 Debian Linux 桌面环境,并流畅使用 PC 级办公软件。
| |
|---|
| 安装 PC 级 WPS Office、CAJ Viewer、亿图图示 |
| |
| 运行 Kdenlive 等 Linux 视频编辑工具 |
| 安装 Octave、Jupyter Notebook 进行数据分析 |
| 完整的 Debian 环境,支持 Python、C/C++、Java 等 |
| 完整的 Linux 命令行 + 桌面体验,适合运维/开发入门 |
| |
| |
| |
| 临时使用 Linux 命令行、Python、Git 等工具 |
真在安卓上安装了 Windows ?
不过需要注意的是,实际上 它并不是真的在安卓上安装了 Windows。
Tiny Computer 本质上是在安卓 App 里运行一套 Debian Linux 桌面环境,再通过图形显示方案把桌面呈现出来。它看起来像 Windows,是因为 XFCE 版本使用了接近 Windows 10 的主题,让任务栏、菜单和窗口交互更符合普通用户习惯。所以更准确的说法是:
它不是“安卓跑 Windows”,而是“安卓跑了一个长得像 Windows 的 Debian 小电脑”。

这个澄清很重要。因为 Tiny Computer 真正有价值的地方,是把原本很折腾的安卓 Linux 桌面体验,包装成了一个普通用户也能尝试的一键应用。可以把它理解成:
在安卓 App 里塞进一台轻量 Linux 小电脑,让手机或平板临时具备一部分桌面办公能力。
对普通用户,它的价值是降低门槛:不用 Root,不用自己搭 Termux 环境,下载对应 APK 后就能进入预配置好的 Linux 桌面。对开发者,它的价值是提供了一个很好的样板:如何把 Flutter、proot、Debian rootfs、VNC/X11、音频、文件系统访问和中文环境适配,整合成一个可分发的安卓应用。
软件安装
设备要求
版本选择
- • XFCE 版(推荐):基于 Debian Bookworm + XFCE 桌面,内置 Kali-undercover Win10 主题,界面友好,适合日常办公。
- • LXQt 版(备选):稳定性更好,无 Win10 主题,适合 XFCE 出现黑屏或兼容性问题的设备。
- • GXDE 版(测试):与 GXDE 团队合作,适合想体验国产桌面环境的用户。
安装软件
- • 进入仓库后,打开 Releases 页面下载对应 APK。普通用户优先选择
tiny-computer-xfce.apk。
项目地址:https://github.com/Cateners/tiny_computer

- • 在安卓设备上打开 APK,根据系统提示允许安装来自该来源的应用。
- • 首次启动时,应用会准备基础组件、容器环境、终端和图形界面。这个过程可能比普通 App 打开更慢。

- • 初始化完成后,会看到类似桌面系统的界面:菜单、窗口、文件管理器、终端等元素都会出现。这时你操作的不是远程电脑,而是安卓本机 App 内运行的 Debian 用户态环境。

常用功能
1. 安装常用 PC 软件
Tiny Computer 提供常用软件的一键安装指令,包括 WPS、CAJ Viewer、亿图图示等。


推荐这样做:
- 2. 找到项目内置的提示、解决方案或快捷安装入口;
建议先跑通默认环境,再扩展功能,省心很多。
2. 调整屏幕缩放
手机和平板屏幕差异很大:手机可能按钮太小,平板可能窗口太大。Tiny Computer 明确提到支持方便地改变屏幕缩放。

建议:
3. 打通安卓和 Linux 文件
Tiny Computer支持两类文件访问方式:


如果你要处理文档,建议建立一个固定工作流:
- 2. Tiny Computer 里打开对应挂载或访问入口;
- 3. 用 WPS / CAJ Viewer 等软件编辑或查看;
第一次别直接处理唯一副本。先用测试文件走一遍打开、编辑、保存、回传流程。
4. 使用终端和高级设置
Tiny Computer 不只是图形桌面壳,也提供终端和高级参数。高级用户可以用它:
如果要切换容器语言:在容器中运行 tmoe,进入 Manager,再到 locale 设置;同时在 Control → Advanced Settings → Startup Command 中更新 LANG=zh_CN.UTF-8 这类环境变量。
技术解析:Tiny Computer 为什么能跑起来?
Tiny Computer 的技术路线可以概括成一句话:
Flutter 做安卓应用外壳,proot 跑 Debian 容器,VNC / AVNC / Termux:X11 显示图形桌面,PulseAudio 处理声音,再通过文件访问机制连接安卓和 Linux。
下面拆开看。
1. Flutter:安卓 App 的控制中枢
README 的项目结构里提到:
lib/├── main.dart # 页面布局├── workflow.dart # 逻辑部分└── l10n/ # 多语言文件
其中 main.dart 主要负责 UI 页面,workflow.dart 负责从点击 App 到容器启动的核心逻辑。
从公开代码结构看,workflow.dart 涉及:
- • 打开 noVNC、AVNC 或 X11 显示桌面。
也就是说,Flutter 不是只做一个按钮页面,而是整个安卓侧控制面板。
2. proot:没有 Root,也能跑 Debian 用户态
README 的原理部分写得很直接:
使用 proot 运行 debian 环境。
传统 Linux 容器往往依赖更底层的系统能力,而安卓普通应用没有 Root 权限。proot 的思路是在用户空间里模拟一个接近 Linux rootfs 的运行环境。
通俗说:
安卓还是安卓,但某个 App 目录里运行着一套 Debian 用户态;Linux 程序以为自己在访问 /usr/bin、/etc、/home,实际路径被映射到 App 的数据目录中。
这也是 Tiny Computer 能做到“不需要 Termux”的关键:它把必要组件和容器环境整合到自己的启动流程里。
3. Debian rootfs:真正承载软件的系统环境
Release 页面能看到不同桌面环境对应的 rootfs 包,例如:
这些 rootfs 可以理解为 Linux 系统的“用户态硬盘内容”,里面包含 Debian 基础系统、桌面环境、输入法和部分预装组件。
README 还说明,root filesystem 使用 tmoe 构建,完整容器制作过程可查看 extra/build-tiny-rootfs.md。
4. noVNC / AVNC / Termux:X11:把桌面显示出来
Linux 桌面需要 X11 或 Wayland 显示服务器,而安卓的图形栈完全不同,因此程序不能直接画到 Android Activity 上,所以 Tiny Computer 内置了多种图形显示方案。小小电脑内置了三种显示方案:
| | | |
|---|
| noVNC | 容器内运行 Xvfb + VNC 服务端,App 内置 noVNC Web 客户端通过浏览器渲染 | | |
| AVNC | 同样基于 VNC 协议,但使用原生 Android VNC 客户端 | | |
| Termux:X11 | 通过 Termux:X11 应用提供原生 X11 显示 | | |
三种方案都通过 PulseAudio(端口 4718)实现音频转发,让容器内的应用可以正常播放声音。普通用户不用纠结底层区别,只要知道:这些方案负责把 Debian 桌面显示到安卓屏幕上。
5. PulseAudio:让 Linux 应用发出声音
从项目 extra/readme.md 可以看到,assets 和 jniLibs 中包含 Xserver XSDL、PulseAudio 相关文件。技术上,Linux 容器里的应用需要一条声音通路,把音频送到安卓侧播放。
所以 Tiny Computer 的启动流程里会准备音频服务。对用户来说,它体现为:部分 Linux 桌面应用可以在安卓设备上正常播放声音。
6. getifaddrs bridge:为安卓 13+ 做兼容
extra/readme.md 里有一个很值得开发者注意的细节:在安卓 13 以上系统中,proot 容器无权使用默认的 getifaddrs,项目提供了 getifaddrs_bridge_client_lib.so。
简化理解:
- 3. Linux 侧通过 socket 通知安卓侧的 bridge server;
- 4. 安卓侧执行
getifaddrs,把结果序列化传回 Linux 侧;
这说明 Tiny Computer 不是简单“把 Debian 打包进 APK”,而是在安卓权限、系统调用和 Linux 应用预期之间做了不少桥接。
开发者视角
如果你想二次开发,不能只 clone 源码。README 明确说明,数据包、patch.tar.gz 和 jniLibs 不在代码仓更新,而是随 Releases 提供,主要是避免 Git 仓库越来越大。
编译前需要准备:
- •
jniLibs.zip:解压到 android/app/src/main/jniLibs/arm64-v8a; - •
patch.tar.gz:拷贝到 assets; - • 使用
split -b 98M debian.tar.xz 分割后拷贝到 assets; - • Release 构建还需要配置发布密钥,可参考
android/keystore.properties.example。
作者 README 中给出的构建命令是:
flutter build apk --target-platform android-arm64 --split-per-abi --obfuscate --split-debug-info=tiny_computer/sdi
这套流程的关键点是:源码、rootfs、patch、jniLibs 共同构成完整构建闭环。
已知问题与使用建议
1. 多用户 / 分身环境可能无法 sudo
README 的已知 bug 提到:
多用户/分身情形无法 sudo,其它见 issue。
如果你在应用双开、系统分身、多用户模式下遇到权限问题,不一定是安装错误。
2. 黑屏先换 LXQt,不要急着判死刑
黑屏可能和桌面环境、显示后端、设备图形兼容有关。官方建议遇到黑屏可以卸载后尝试 LXQt 版本。
3. 重要文件先备份
Tiny Computer 很适合轻办公、文档查看、Linux 学习和备用设备再利用。但涉及重要文档时,建议先复制一份再编辑。
推荐做法:
- • 优先使用项目 Releases 页面提供的安装包。
4. 性能取决于本机硬件
它不是云电脑,计算发生在安卓本机。体验取决于 CPU、内存、存储速度、屏幕尺寸,以及是否外接键鼠。
如果设备比较老,不要期待它流畅运行重型图形软件。把它当作轻办公、学习、应急和折腾工具,体验会更接近真实。
对这个项目的判断
Tiny Computer 真正有意思的地方,不是“安卓替代电脑”这种夸张叙事,而是它把原本很折腾的安卓 Linux 桌面体验,包装成了普通用户可以尝试的一键应用。
它把几件复杂的事串了起来:
这也是它适合被称为「PC 应用引擎」的原因:它不是只给你一个终端,而是尽量把终端、桌面、应用、输入法、文件访问拼成一个可用工作台。
对普通用户,它的意义是:
用一台安卓设备,低成本试试 Linux 桌面办公。
对开发者,它的意义是:
它展示了如何把 Flutter、proot、rootfs、VNC/X11、音频、文件系统适配整合成一个可分发的安卓应用。
结尾:如果你有安卓平板,值得试一次
如果你只是想在安卓上打开几个 PC 风格应用,建议从 XFCE 版本开始;如果遇到黑屏,再换 LXQt;如果你是 Linux 爱好者,再研究 GXDE、灵墨桌面和自行编译。
Tiny Computer 不会让安卓设备变成完整笔记本,但它确实提供了一个很有意思的方向:
移动设备的性能已经足够强,真正缺的是把复杂能力包装成普通人能打开、能理解、能使用的产品。
Tiny Computer 做的,正是这件事。
📌 提示:本文基于 v1.0.24 版本撰写,部分功能可能随版本更新有所变化,请以官方仓库最新文档为准。
如果你认为这篇文章有帮助,欢迎点赞、在看、转发三连,让更多小伙伴知道这个「口袋里的 Linux 电脑」!