使用 Waydroid 在 Ubuntu Touch 上安装 Android 应用

  • Waydroid 在 Linux 容器中运行完整的 Android 系统,将 Android 应用与 Ubuntu 和 Ubuntu Touch 集成,而无需使用重量级的虚拟机。
  • 在 Ubuntu Touch 上,Halium 9 或更高版本的设备预装了 Waydroid,您可以轻松初始化它,并从终端管理 APK 和 F-Droid 等应用商店。
  • 兼容性并非完全:某些应用程序(银行、使用 Play Integrity 的服务)可能无法运行,并且使用 Waydroid 会增加电池消耗并可能导致硬件冲突。
  • 该生态系统依赖于免费技术(LXC、命名空间、LineageOS、microG),并拥有一个活跃的社区,该社区负责纠正错误并改进与 Ubuntu Touch 的集成。

如何使用 Waydroid 在 Ubuntu Touch 上安装 Android 应用

如果您使用 Ubuntu Touch 并且想要 顺利安装和运行 Android 应用程序你可能已经听说过 Waydroid 了。将你最喜欢的 Android 应用嵌入到你的 Ubuntu 手机或平板电脑中的想法非常诱人,但当你真正尝试时,问题就开始出现了:系统要求、性能、兼容性、电池消耗,以及如何安装 APK 文件而不至于崩溃。

在接下来的几行中你会发现 Ubuntu Touch 系统上 Waydroid 的完整使用指南本指南涵盖了该工具的方方面面,从它的功能、与系统的集成方式、局限性,到如何安装和管理安卓应用程序(包括F-Droid等应用商店)。所有内容均以西班牙语(西班牙)讲解,语言通俗易懂,同时又不忽略那些至关重要的技术细节。

Waydroid是什么?它在Ubuntu和Ubuntu Touch上是如何工作的?

简而言之,Waydroid 就是 一个完整的 Android 环境,运行在 Linux 容器内它不是经典的模拟器或大型虚拟机:它是一个兼容层,将 Android 与 GNU/Linux 系统(如 Ubuntu 桌面、Ubuntu Touch 或衍生发行版(Debian、Droidian、UBports 等))集成在一起。

这个项目是在以下方面的演变而来的: Anbox-Halium 是 Anbox 的一个变体,专为 Linux 手机优化。其理念是通过减少中间层,更有效地利用宿主设备的本地硬件。因此,Android 应用的运行性能更接近原生应用,延迟更低,用户体验也比传统虚拟机流畅得多。

为了实现这一点,Waydroid 依赖于 Linux 中的标准容器技术,特别是命名空间 (用户、进程ID、UTS、网络、挂载点、IPC)。这些命名空间允许您隔离进程、用户、网络和其他资源,从而使容器中“封闭”的 Android 系统作为一个独立的系统运行,但与发行版的其余部分共享同一个内核。

容器管理是通过以下方式完成的: LXC(Linux 容器)是一个非常成熟的容器化环境管理工具特定的模块会被加载到该Linux内核中,例如 binder_linux 和 ashmem_linux这些对于 Android 的正常运行至关重要,无需单独的“特殊”内核。

什么是适用于 Android 的 Lepton 兼容层?
相关文章:
Lepton是什么?它是Valve为Android开发的兼容层。

在实践中,这意味着 Waydroid 内部运行的 Android 系统可以相当直接地访问你的硬件。图形、触摸输入、音频等等,CPU 都不会被模拟,所有硬件也不会像通用模拟器那样被重新创建;相反,它直接使用设备自身的 Linux 内核。这就是为什么它的性能远超传统虚拟机的原因。

Waydroid 使用的 Android 系统镜像通常基于 LineageOS,通常基于 Android 10这是一个极简但完整的镜像,适合在容器内运行,并提供运行各种 Android 应用程序所需的一切。

以 Ubuntu Touch 为例,Waydroid 的设计目的是…… 正在开发基于 Wayland 协议的会话这是一项关键要求:Android 窗口的集成、渲染方式以及与环境其他部分的交互都依赖于 Wayland。在运行 Ubuntu 的桌面计算机上,同样适用此要求:如果您不使用 Wayland,Waydroid 将无法正常工作。

Waydroid 的优势:近乎原生集成 Android 应用

Waydroid最大的优势之一是 Android应用程序与桌面环境或触摸界面的集成非常自然你并不是简单地“在手机里打开另一个手机”;Android 应用可以与原生 Linux 应用非常透明地共存。

例如,你可以有 同时打开Ubuntu Touch原生浏览器和Android即时通讯应用或游戏用户可以像在传统安卓智能手机上一样,在它们之间轻松切换。这种并行共存是该项目的关键特性之一。

Waydroid 也允许这样做 Android应用程序快捷方式会出现在标准的Ubuntu菜单或应用程序列表中。在 Ubuntu Touch 系统中,这意味着 Waydroid 初始化完成后,你会看到新的 Android 应用图标与系统应用图标混杂在一起。如果它们没有立即出现,只需重新加载应用范围(从屏幕中心向下滑动并松开)即可刷新列表。

另一个非常有趣的特点是 以多窗口模式运行 Android 应用窗口会根据桌面环境的视觉风格进行调整,这在平板电脑或其他需要更接近PC体验的设备上尤其有用。您可以像操作本地程序一样重新定位和调整Android窗口的大小,让操作更加便捷。

对于那些将该设备用作便携式游戏机或媒体中心的用户,Waydroid 提供 安卓应用的全屏模式这非常适合游戏或视频内容,因为它充分利用了屏幕空间,而无需处理额外的系统栏或边框。

如果您更喜欢经典的体验,我们也有提供。 一种显示完整 Android 界面的模式在那里,您将拥有自己的主屏幕和应用程序抽屉,就像在 Ubuntu Touch 中使用 Android 手机一样,而不仅仅局限于单个窗口。

技术要求和支持的环境

使用 Waydroid 在 Ubuntu Touch 上安装 Android 应用

要使 Waydroid 正常工作,您必须满足一系列要求。 必须严格遵守的技术要求跳过其中任何一个步骤通常都会导致难以调试的错误。

首要基本要求是使用 Wayland 作为图形会话协议在桌面系统上,如果您在 X11 环境下启动 Ubuntu 并尝试启动 Waydroid,则会立即遇到问题。而对于 Ubuntu Touch 和其他基于 Halium 的移动系统,会话已在 Wayland 上建立,因此无需额外设置即可解决这个问题。

在桌面 GNU/Linux 系统上,也需要具备以下条件: 已安装 Python 3这通常不是问题,因为几乎所有当前的发行版都默认包含它,但它是 Waydroid 工具包运行所必需的依赖项。

另一个关键组成部分是 LXC 是 Waydroid 使用的容器技术。例如,在桌面版 Ubuntu 系统上安装 Waydroid 之前,需要确保 LXC 已正确安装。在典型的 Ubuntu 安装中,执行此操作的命令类似于:

sudo apt install lxc

如果没有该软件包,Waydroid 将无法创建和管理 Android 容器,因此值得从一开始就检查它是否存在,以避免后续的重新安装。

关于分销,Waydroid 提供 为各种版本的 Ubuntu 和 Debian 准备的软件仓库例如,Ubuntu 20.04 (focal)、21.04 (hirsute) 和 Debian 11 以及 Droidian 和 UBports 等衍生系统都有相应的软件包。要添加软件源,首先需要定义一个包含版本号的变量,然后获取 GPG 密钥并注册软件源。

export DISTRO="hirsute"
curl https://repo.waydro.id/waydroid.gpg > /usr/share/keyrings/waydroid.gpg && \
echo "deb [signed-by=/usr/share/keyrings/waydroid.gpg] https://repo.waydro.id/ $DISTRO main" > /etc/apt/sources.list.d/waydroid.list && \
sudo apt update

现在有了软件仓库,在桌面版 Ubuntu 上安装就变得非常简单了。 sudo apt install waydroid接下来,容器会被初始化,并通过一些命令启动,例如: sudo waydroid init y sudo systemctl start waydroid-container.

在 Ubuntu Touch 系统中,情况则有所不同: 从 Focal 基础版开始,所有基于 Halium 9 或更高版本的设备都预装了 Waydroid。换句话说,您无需手动添加存储库或安装额外的软件包:只需从终端初始化它,它就会下载 Android 镜像并准备就绪。

Waydroid 在 Ubuntu Touch 上的基本设置

如果您的手机或平板电脑搭载的是 Ubuntu Touch 系统,并且基于 Halium 9 或更高版本,那么出现这种情况是正常的。 Waydroid 已安装在系统中,等待您首次启动它。初始激活是​​通过设备上的 shell 完成的。

要打开该 shell,您有以下几种选择: 通过电脑上的 ADB 连接,如果启用了 SSH,也可以使用 SSH,或者使用 Ubuntu Touch 自带的终端应用程序。这些方法中的任何一种都会打开一个命令行界面,您可以在其中输入 Waydroid 命令。

一旦 shell 打开,关键步骤就是运行 初始化命令:

waydroid init

此过程会下载 Android 镜像、创建容器并安装准备环境所需的一切。根据您的网络连接和设备性能,此过程可能需要一些时间,请耐心等待。

完成后,只需 重新加载 Ubuntu Touch 应用程序列表,检查 Android 应用图标是否出现。如果一开始看不到它们,请在应用视图中从屏幕中间向下滑动并松开以刷新。之后,您安装的任何 Android 应用都会添加到该列表中。

在 Ubuntu 桌面上安装并重启 Waydroid

在安装了 Ubuntu 或 Debian 的桌面系统上,除了前面提到的要求之外,安装并运行 Waydroid 的基本流程相对简单。添加软件仓库并更新软件包索引后,后续步骤如下: 使用 apt 安装 Waydroid:

sudo apt install waydroid

然后执行 Android 容器初始化:

sudo waydroid init

图片准备就绪后,您需要…… 启动容器服务 使用 systemd:

sudo systemctl start waydroid-container

如果出现问题,例如您事先没有安装 LXC 或配置错误,您可以始终选择 彻底卸载并重新安装 Waydroid为此,首先需要停止会话和容器:

waydroid session stop
sudo waydroid container stop

然后使用以下命令卸载该软件包:

sudo apt remove waydroid

最后,将数据文件夹从容器中删除,以彻底清理所有数据:

sudo rm -rf /var/lib/waydroid

完成此过程后,您可以 重复安装过程,确保满足所有先决条件。从 LXC 开始,然后再次运行 sudo waydroid init 以及容器服务的启动。

Ubuntu Touch Web 应用指南:扩展您的应用目录
相关文章:
Android 14 与 Ubuntu Touch:同一款手机的实际性能对比

在 Ubuntu Touch 上使用 Waydroid 安装 Android 应用程序 (APK)。

Waydroid初始化完成后,下一步合乎逻辑的步骤是: 以 APK 文件的形式安装您自己的 Android 应用程序在 Ubuntu Touch 中,这也是通过命令行完成的,但过程非常简单。

首先是 将 APK 文件复制到设备上可访问的路径。典型的文件夹通常是:

/home/phablet/Downloads

您可以通过多种方式获取该文件:直接从您的移动浏览器下载、通过 USB 从您的计算机传输、使用 ADB 推送,或使用您熟悉的任何其他工具。

APK安装完成后,再次在设备上打开一个shell(通过ADB、SSH或终端应用程序),然后使用以下命令: Waydroid 特有的应用程序安装命令,表示完整的文件路径:

waydroid app install /home/phablet/Downloads/mi-aplicacion.apk

如果文件有效且兼容,则安装将完成。 您很快就能在 Ubuntu Touch 应用程序列表中看到 Android 应用图标。和以前一样,如果它没有立即出现,请从屏幕中心向下拖动刷新列表。

使用应用商店:F-Droid、亚马逊应用商店等等

手动安装 APK 文件也可以,但这样更方便。 在 Waydroid 中集成应用商店,用于管理安装和更新。在没有谷歌认证的环境下,最常见的选择通常是 F-Droid 和亚马逊应用商店,以及其他替代应用商店。

F-Droid之所以脱颖而出,是因为 它提供了一个免费开源应用程序(FOSS)目录。它不需要谷歌账号,也不依赖于谷歌的专有服务,这与Ubuntu Touch以及自由软件的理念完美契合。要安装它,只需从官方网站下载其APK文件,或者使用类似这样的工具即可。 wget然后使用 Waydroid 命令:

wget https://f-droid.org/F-Droid.apk
waydroid app install F-Droid.apk

安装好 F-Droid(或其他任何替代应用商店)后,您就可以…… 通过 Android 图形界面搜索、安装和更新应用程序。但是,由于 Waydroid 的特性,这些应用商店不会完全自动更新应用程序:您需要定期打开应用商店,检查更新,并确认安装每个更新。

总体流程通常相同: 找到该应用,点击安装或更新,等待下载完成,然后接受安装对话框。 这些信息由 Android 系统在 Waydroid 中显示。虽然比在经过认证的 Android 手机上操作起来稍微繁琐一些,但完全够用。

对于高级用户来说,有可能 创建已预装特定应用商店的自定义 Waydroid 镜像。这样一来,就可以在多个设备上部署 Android 环境,而无需在每台设备上手动重复安装 F-Droid 或任何其他应用商店。

卸载安卓应用并管理存储空间

当你停止使用某个安卓应用时,最好…… 卸载它可以释放存储空间并减少潜在冲突。在搭载 Waydroid 的 Ubuntu Touch 系统中,这项任务也是通过设备 shell 执行的。

首先打开终端(通过 ADB、SSH 或 Ubuntu Touch 终端应用程序本身),然后 使用 Waydroid 命令列出和删除应用程序例如,您可以使用以下命令查看已安装的应用:

waydroid app list

该命令将显示应用程序标识符 (APP_ID),您需要卸载的就是这些应用程序。找到您要卸载的应用程序后,您可以运行:

waydroid app remove [APP_ID]

如果您已配置 ADB,则还可以使用以下命令:

adb uninstall [APP_ID]

使用上述任何方法卸载应用程序后,图标可能需要一段时间才会从 Ubuntu Touch 列表中消失。在这种情况下, 向下拖动即可重新加载应用程序列表 从应用视图中强制更新。

从 Ubuntu Touch 访问 Android 内部存储

在某些情况下,它非常有用。 能够直接访问 Waydroid Android 环境的文件 备份、移动数据或检查已下载的内容。

Android 系统识别的内部存储通常位于类似这样的路径中:

/home/phablet/.local/share/waydroid/data/media/0

从 Ubuntu Touch 中,您可以 使用文件管理器或终端浏览该文件夹。复制文件、与其他应用同步数据,或者浏览已保存的内容。它实际上相当于普通安卓手机的“内部存储”,但可以通过 Linux 层访问。

重要限制:电池、兼容性和硬件

虽然 Waydroid 是一个非常强大的工具,但它也很重要。 在开始每天使用之前,请务必充分了解它的局限性。并非全是优势,了解潜在的障碍在哪里也很明智。

许多用户注意到的第一个限制是 Waydroid 活动时电池消耗增加最终,整个 Android 系统及其服务和进程都会与 Ubuntu Touch 并行运行。如果您想节省电量,建议在不需要 Waydroid 时将其停止。

你还必须假设 并非所有安卓应用都能在 Waydroid 上运行。特别是那些严重依赖 Google Play Integrity 或 SafetyNet 等服务的应用程序(例如网上银行、某些支付服务、对安全性要求很高的应用程序),通常会验证设备是否已通过 Google 认证并安装了官方的 Play 服务。

就像在 Ubuntu Touch 中使用 Waydroid 一样 您没有经过认证的环境或官方应用商店。许多此类应用将无法运行或显示错误信息。这也会影响那些需要特定谷歌认证设备或与该公司专有生态系统紧密相关的功能的程序。

要考虑的另一个方面是 Ubuntu Touch 和 Waydroid 在使用外设方面可能存在冲突。如果两个系统同时尝试访问摄像头、麦克风或其他设备,其中一个系统可能会失去访问权限。安卓应用经常会抱怨无法使用摄像头,因为摄像头正被主系统使用。

对于那些需要类似 Google Play 服务所提供功能的用户来说,还有…… microG,这些服务的免费实现。在某些情况下,将其集成到 Waydroid 中可以提高与某些应用程序的兼容性,但这并非万全之策:需要严格完整性检查或认证的应用程序仍然会遇到问题。

APK安装和日常使用故障排除

在 Waydroid 上安装应用程序时,最常见的错误之一是遇到以下消息 运行安装命令时出现“无效的 APK 文件”错误乍一看像是文件损坏,但通常问题要简单得多。

最常见的原因是 系统在指定路径中找不到 APK 文件。这可能是由于名称拼写错误、从不同的目录运行命令,或者忘记包含完整路径造成的。为避免此类错误,建议始终使用绝对路径,例如:

waydroid app install /home/phablet/Downloads/mi-aplicacion.apk

如果错误仍然存​​在,则可能是以下原因: APK文件已损坏、不完整或与您的设备架构不兼容。在这种情况下,最好从可靠的来源重新下载,或者寻找适合您硬件(ARM、ARM64 等)的其他版本。

即使是日常使用,也可能出现一些小的集成故障或偶尔的崩溃。在很多情况下, 重启 Waydroid 容器可以解决很多问题。例如,在 Ubuntu 桌面版中,您可以使用以下命令:

sudo systemctl restart waydroid-container

如果问题持续存在或看起来更加严重,最好查看日志,查找类似事件,并在必要时采取相应措施。 向相关项目报告此错误。.

Google Play 商店、Google 服务及其他选项

整件事中最棘手的一点是…… Waydroid 上没有 Google Play 商店和 Google 的专有服务。Google 维护着一份经过认证的设备列表,如果某个系统不在该列表中,Google 就会阻止其官方访问其应用商店和某些 API。

这意味着,即使你拥有 Waydroid 内包含一个功能齐全的 Android 环境您将无法正式使用 Play 商店。许多应用仅通过该商店分发,因此您必须使用其他 APK 存储库或第三方商店来安装它们。

这种方法对大部分曲目都相当有效,但是 它不能保证与经过认证的安卓设备上的行为完全相同。需要 SafetyNet、Play Integrity 或高级安全检查的应用可能无法启动或功能受限。

如前所述,microG 可以通过提供以下功能来部分弥补这些不足: 免费实现某些谷歌API然而,这并不能解决所有问题,尤其是银行应用程序和其他关键服务,通常仍会保留其限制。

Waydroid + Ubuntu Touch 生态系统中的错误管理和报告

Waydroid是一个不断发展的项目, 与 Ubuntu Touch 和其他系统的集成正在不断完善。使用不同设备时,遇到一些小错误、异常行为或差异是正常的。

Liberux NEXX-0 智能手机功能
相关文章:
Liberux NEXX:市场上功能最强大、最私密的 Linux 智能手机

当您检测到故障时,建议…… 区分这是 Ubuntu Touch 特有的问题还是 Waydroid 的问题与基础系统(界面、会话管理器等)相关的错误应在 Ubuntu Touch 问题跟踪系统中报告。但是,与 Android 容器、Waydroid 命令或 Android 应用执行相关的特定错误则应在 Waydroid 官方问题跟踪系统中处理。

发送报告时,请尽量包含以下内容 请提供尽可能详细的信息:设备型号、Ubuntu Touch 版本、重现错误的详细步骤以及错误信息。这些信息有助于开发人员快速诊断问题并提出修复方案或临时解决方案。

综上所述,显然 Waydroid 已成为那些希望将 Android 世界与 Ubuntu Touch 相结合的用户的重要工具。它允许您以集成的方式运行许多应用程序,访问 F-Droid 等替代商店,从终端管理 APK,并更好地利用设备的硬件,同时始终牢记 Google 认证的限制、更高的电池消耗以及在同一核心上组合两个系统时可能出现的硬件冲突。 分享信息,让更多用户了解该主题。