不用笔记本电脑编程:使用 AR 眼镜和 Android 上的 Linux 进行的两周体验

2025年5月11日 · 阅读时长12分钟

最近我学到了一件让我震惊的事情:你可以在手机上运行完整的桌面 Linux 环境。

不是那种笨拙的虚拟机,也不是像 Ubuntu Touch 或 postmarketOS 这样彻底的操作系统替换。 只是在 Android 上一个小的 chroot 容器内运行的原生 arm64 二进制文件。 看看这个:

image1

i3, picom, polybar, firefox 和 htop

这是一个通过 X11 实现的图形环境,具有真正的窗口管理和合成,Firefox 舒适地播放 YouTube (包括正常工作的音频),以及带有系统统计信息的状态栏。 它在不到一秒钟内启动并且感觉很流畅。

暂时忽略让它工作的细节,最明显的反应是“好吧,这很酷,但是,为什么”。 说的也对。 这很新颖,但肯定没有用。

问题是,我即将进行为期 2 周的旅行,我需要在那里工作,并且我有点迷恋于我可以以某种方式将笔记本电脑留在家里_只使用我的手机_的想法。 那么,如果我们添加一个折叠键盘和一些 AR 眼镜呢?

image2

这是我一直在开发的基于 CRDT 的电子书/有声读物阅读器,它运行一个桌面 Linux 应用程序并连接到 Flutter 调试器。

这里有点令人惊奇的是,眼镜和键盘都可以舒适地放在我的口袋里。 而且我已经带着手机了,所以没有增加太多负担。

硬件

键盘: 市面上有很多小巧的折叠蓝牙键盘,在我找到一个 可以容忍的之前,我不得不经历其中的 5 个。 我尝试了一些带有触控板的,但它们要么太大,要么键被挤在一起以适应。 显示图形环境的 Termux:X11 应用程序能够充当触控板来移动鼠标指针,事实证明这对于鼠标输入来说已经足够好了。 我无论如何都非常以键盘为中心,所以我经常会在一段时间内不需要触摸它。

眼镜: 信不信由你,“增强现实”眼镜现在有点好了。 AR 部分几乎完全用词不当; 它们只是绑在你的脸上并连接到鸟浴光学器件上的微小 OLED 显示器。 我能够从 ebay 上买到一副轻度使用的 Xreal Air 2 Pros,它可以向我展示一个 1080p 显示器,具有 46° 视野。 一些较新的产品可以进行大型虚拟显示,而不是我的那种固定在你头上的图像,但我对这种设置持相当怀疑的态度,至少在分辨率和视野提高之前是这样。

手机: 我不幸不得不升级我的手机,因为要驱动眼镜,你需要有 DisplayPort Alt 模式。 我非常便宜、非常糟糕的旧手机没有。 8 系列似乎是 Google 决定稍微不那么邪恶并且没有在软件中锁定 DP Alt Mode 功能(强迫人们购买 Chromecasts? IDK)的第一款 Pixel 手机,所以我从 ebay 上购买了一部二手的 Pixel 8 Pro。

所以整个设置:

总成本:636 美元。 虽然我不确定手机的 350 美元是否应该算在内,因为我确实需要一部新手机。

在经过几个下午的实验后,我觉得我_可能_只能使用这个设置来完成这两周的工作。 我认为完全提交会阻止我在遇到困难并感到沮丧或无聊时恢复到 PC。

结果

所以在飞机上、咖啡店里、各个家庭成员的家里、公园里,甚至坐在车里使用了它之后,我想我有一些关于“当笔记本电脑存在且很棒时,你为什么要使用这个”的答案。

  1. 它确实可以放进口袋里。 没有包,无需携带任何东西。
  2. 我可以在明亮的阳光下在户外使用它。 我在公园的野餐桌旁写了这篇博文的大部分内容。 屏幕眩光和亮度不是问题。
  3. 我可以适应狭小的空间。 在飞机上,这种设置比笔记本电脑舒服多了。 一些咖啡店也有太小而无法放置笔记本电脑的狭窄酒吧,但这种设置可以。
  4. 手机有蜂窝连接,因此我不受 wifi 的限制。

换句话说,有一种笔记本电脑所没有的自由感。 而且我可以_在户外_。 作为软件开发人员,我厌倦的事情之一是感觉自己总是被困在屏幕前的室内。 有了这个,我可以走到咖啡店工作一两个小时,然后起床走到公园再工作一个小时。 真的有一种令人惊叹的自由感。

也就是说,整个过程中有很多痛点和细微差别。 所以这是我的经验:

Linux 环境

Android 上的 Linux 最终 非常棒,但我不想掩盖这样一个事实,那就是弄清楚它很痛苦。 我对“足够胜任”的定义是 Neovim + 正常运行的语言服务器(Nim、Python、Dart、JS)、Node 和 Flutter(编译为可以在运行和调试的桌面和 Web 应用程序)。

我不会在这里逐行介绍所有内容(如果有人感兴趣,我可以这样做),但是已经有一些很棒的资源(链接如下)。 这是基于我的学习的高层情况。

大致有 4 种不同的 Android 上 Linux 的方法:

  1. 模拟 x86_64 的虚拟机
  2. Termux,它是一个 Android 应用程序,提供终端模拟器、轻量级 Linux 用户空间以及一组可以在该环境中运行的软件包的混合体。
  3. 在 chroot 中运行的 arm64 二进制文件,chroot 基本上只是一个目录,这些程序将在其中运行,将它们与文件系统的其余部分隔离。 值得注意的是,它需要系统被 root。
  4. proot。 与 chroot 相同的想法,但不使用 chroot 需要 root 的被禁止的系统调用

在花费了太多时间进行实验后,我最终选择了 chroot 方法。 我真的不想 root 手机,但没有其他方法可以满足我的需求。 虚拟机太慢而且笨拙,proot 也是如此。 坚持在 Termux 中可以运行的内容让我惊讶地走得很远,但是 Android 的 C 实现是 Bionic,除非用它编译,否则大多数程序都无法运行。 此外,环境中的其他差异意味着你的限制很大。 据我所知,Chroot 没有性能损失,而且(在很大程度上)任何可以为 arm64 编译的东西似乎都可以工作。

至于发行版(我尝试了很多),以下是重要的:

  1. 小而轻。 毕竟这是一部手机。
  2. 显然必须支持 aarch64。
  3. 不使用 systemd (我永远无法在 chroot 中使其工作,并且不清楚是否可能)。
  4. 对在 chroot 中运行进行一些测试或支持。 例如,Arch Linux ARM 在这里有一些奇怪的问题,例如 fakeroot 无法正常工作。
  5. 使用 glibc。 我认为 Alpine 会是票,但我真的需要 Flutter/Dart 才能工作,而且我无法让它与 musl 一起工作。 这可能对每个人来说都不是问题。

所以最终,Void Linux 的 aarch64 glibc rootfs tarball 符合要求,并且它一直在完美运行。

我使用了 i3(一个以键盘为中心的平铺窗口管理器),但我测试了 xfce,它也可以正常工作。

一些有用的链接:

AR 眼镜

这些东西上的图像质量非常棒。 你看到的是来自精美 OLED 显示屏的明亮像素。 但是因为每个像素都从镜头上反射,所以黑色像素看起来很清晰。 因此,带有白色文本的黑色终端背景意味着你看到的是漂浮在太空中的白色文本。 如果你想要“更少的屏幕,更多的周围世界”的感觉,这实际上非常酷,但也可能会分散注意力。 但是,我购买的型号具有电致变色调光功能,因此你可以调暗实际的“太阳镜”部分,以阻挡环境光。 如果没有这个,它们在明亮的阳光下将无法使用,因为图像会褪色,所以我强烈建议购买一副具有此功能的眼镜。

image3

显然不可能获得良好的透镜照片,但请相信我,通过眼镜看到的图像非常棒。 这是在未打开电致变色调光的情况下,因此文本只是漂浮在风景前面。 如果你愿意,可以调暗眼镜,直到几乎看不到它们为止。

我确实觉得在公共场合戴这些东西有点奇怪,但不是_那么_奇怪。 它们或多或少可以当作太阳镜,所以奇怪的部分是在室内戴着太阳镜并在没有东西在你面前的键盘上打字。 我有几个人问我关于它们的问题,但他们似乎只是认为它们很酷。 有一个人说他打算买一副。 但这可能存在选择偏差; 我相信有些人认为我是一个白痴。

眼镜的最大缺点是 FOV 实际上太大了。 看到屏幕的顶部和底部边缘意味着将你的眼球移动到有点不舒服的角度,而且实际上很难让镜头处于正确的位置,以便两者同时清晰对焦。 我让窗口管理器在屏幕的顶部和底部添加了一些额外的填充,这有很大帮助。

值得一提的是:我尝试在 Android 上使多显示器模式工作,但它很糟糕。 我最终使用了这个应用程序 将手机的分辨率更改为 1080p,然后只镜像到眼镜。 事实证明这很棒,因为你可以取下眼镜,随时在手机上工作以休息一下。

眼镜的焦平面约为 10 英尺。 这意味着如果你使用阅读器来使用笔记本电脑,你可能不需要它们。

键盘

叹息。 有人可以做一个好的折叠键盘吗? 这块价值 18 美元的小塑料对于它来说还不错,但这是整个设置中最薄弱的部分,而且感觉应该是最简单的。 它感觉很便宜,比需要的更笨重,打开时不会锁定(这意味着你不能真正将它放在你的腿上),并且没有基于固件的按键重新映射。

我可能会继续玩 alibaba 轮盘赌,看看是否有更好的。 但我真的愿意为好的东西付出 10 倍的代价。

性能

作为粗略的基准,我尝试从源代码编译 Nim。

我会说从定性的角度来说,这大概就是使用的感觉。 比 Thinkpad 快,但肯定没有 Framework 快。

顺便说一句,我很高兴我为 Pixel 8 Pro 多付了一点钱,因为它具有的 12GB RAM 与非 Pro 型号的 8GB 相比似乎是值得的。 RAM 使用率通常接近 12GB 的上限。

电池寿命

在打开眼镜并调暗手机屏幕的情况下,手机在空闲时使用的功率略低于 3 瓦,在编译或执行更繁重的任务时使用的功率为 5 到 10 瓦。 平均而言,我每小时会耗尽大约 15% 的电池电量。 因此,你需要在 4 到 5 小时内考虑充电,但我不确定你是否想将眼镜戴在身上超过那么长的时间。

我会继续使用这个吗?

我已经安全地度过了新鲜感阶段,而且令人难以置信的是,我认为答案是肯定的。 如果我带着笔记本电脑,我永远不会去拿手机,就像如果我坐在我的台式电脑旁边,我就不会拿我的笔记本电脑一样。 但是这种手机设置可以去笔记本电脑无法去的地方,而且这种自由是我长期以来一直想要的,即使我没有完全意识到这一点。

我还发现整个东西相对便宜,尤其是与 Apple Vision Pro 这样的东西相比,这令人惊叹。 有趣的是,它无法做到我最终关心的一切。 它无法放进口袋里,并且它在“真正”计算方面的能力并不比 iPhone 强。 我想你可以在户外使用它,但是你的眼睛在一个密封的盒子中,所以我认为这甚至不算数。

我认为超移动软件开发实际上可能有一个未来。 尤其是在这些 AR 眼镜不断改进以及 Linux 继续保持灵活性和令人敬畏的状态下。 尽管存在一些粗糙之处,但我现在能够去以前无法去的地方并做以前无法做的事情,我对此感到兴奋。