这几年,国产操作系统替代正在有条不紊地进行中。但生态是绕不过去的一道坎,指望应用厂商一下子完成国产系统适配也不现实。之前介绍过使用 Wine 运行 Windows 应用的方案,减少了国产系统应用偏少的难题。比如我在办公室使用最多的企业微信,一直没有开发 Linux 版本,就是通过 Wine 运行的。
除了 Windows 应用,还有新的目标,那就是手机应用。这些年移动互联网蓬勃发展,手机 app 从数量上已经远远超过桌面应用,如果能在桌面系统运行手机应用,那也能一定程度补齐国产操作系统的短板。手机应用主要是安卓和 iOS 两家。iOS 系统由于其封闭性,不太容易兼容,所以现在的方案基本上都是针对 Android 应用。
总体说来,在 Linux 系统上运行 Android 应用,有如下方案。
- QEMU 模拟器方案
QEMU 基于虚拟化技术创建完整的 Android 虚拟机。通过模拟硬件设备(CPU、内存、屏幕等)运行完整的 Android 系统镜像,支持多版本 Android 和自定义设备配置。
这种方案支持完整的 Android 系统功能,适用于开发测试复杂的应用(如依赖特定传感器或 GPU 加速的应用)。比如谷歌官方的安卓模拟器就是在 QEMU 的基础上定制的。
但这种方案的缺点也是非常明显,模拟器启动非常缓慢,使用 Android 模拟器做过开发的同学应该深有体会,而且模拟器还需要模拟 ARM 指令,效率低下,所以在模拟器里运行安卓程序也是非常缓慢。
这种方法用来做开发调试还可接受,但如果只是为了运行安卓应用,那是万万不可能的。
- anbox 容器化方案
Anbox 是"Android in a Box"的简称,是一种基于容器化技术的开源方案,目标是让 Android 应用程序直接在 Linux 系统上运行。
通过 Linux 容器(LXC)技术实现 Android 运行时环境的隔离,复用 Linux 内核直接执行应用,无需虚拟化硬件。硬件访问请求统一通过宿主机的 anbox 守护进程转发。
Anbox 借了 QEMU 模拟器的 OpenGL ES 渲染方案,通过虚拟化管道(fast pipes)实现图形加速,支持 Android 应用的窗口化显示,与 Linux 桌面环境无缝集成。
听起来很美好,但该项目已于2023年停止更新,究其原因,可能是兼容性差,依赖非标准内核模块 binder (进程间通信)和 ashmem (共享内存),显卡兼容性也不好,很多应用只是那能用,但跑起来存在诸多问题。
在 anbox 的主页上,建议用户转向 waydroid 项目和 anbox cloud(由 Ubuntu 支持)。
- waydroid 容器化方案
Waydroid 和 anbox 类似,利用 Linux 容器(LXC) 技术,通过命名空间(如用户、进程、网络、挂载等)隔离 Android 运行时环境。它直接复用宿主机的 Linux 内核,无需虚拟化硬件,显著降低资源开销。Android 系统的文件系统(如 /system 、 /data )以独立挂载的方式与宿主机隔离,确保应用数据互不干扰。
Waydroid 支持自由调整窗口大小,模拟手机或平板界面。而且 Android 应用可自动添加到 Linux 应用菜单,支持拖拽文件互通。
正如名字所示,该方案要求 Linux 系统需支持 Wayland 显示协议 和 systemd。内核需启用 binder 、 ashmem 等模块,建议使用 Linux 5.4+ 版本。
Waydroid 支持的 Android 系统版本为 11 和12,比 anbox (只支持 Android 7) 更加友好。
- 麒麟 KMRE
麒麟软件开源的 KMRE(Kylin Mobile Runtime Environment,麒麟移动运行环境) 是国内首个基于容器化技术的商用移固融合方案,旨在通过兼容 Android 应用生态,解决 Linux 操作系统应用短缺的难题。
KMRE 和 anbox、Waydroid 类似,基于 Linux 容器(LXC) 技术实现 Android 与 Linux 的深度集成。通过适配 OpenGL|ES 和 Wayland 协议,支持国际主流显卡(如 NVIDIA、AMD)及国产显卡(如摩尔线程)的图形加速。
此外,KMRE 改进了 窗口管理,Android 应用窗口与 Linux 桌面窗口统一调度,支持多窗口自由缩放、分屏显示。
而且还实现了数据互通,剪贴板、文件系统、输入法、通知中心等与 Linux 桌面共享。
KMRE 在国产化支持方面做得不错,覆盖 x86 和 ARM 架构,适配飞腾、兆芯、海光、Intel、AMD 等 CPU,以及国产显卡。
- 小结
上面的各种方案或多或少都有一些缺点,只是为了生态需求采用的方案,我们当然希望软件开发商都推出 Linux 适配版本,彻底抛弃 wine 和 Android 模拟器才是最终方案。
话说全村的希望鸿蒙 PC 会如何应对这一难题,让我们拭目以待。