跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Shell / Bash大前端java

Ubuntu 24.04 下使用 Waydroid 运行 Android 应用指南

Ubuntu 24.04 环境下部署 Waydroid 安卓模拟器的完整方案。利用容器技术实现轻量级 Android 运行环境,解决镜像下载慢、NVIDIA 显卡兼容性、网络防火墙限制及 ARM 指令集支持等常见问题。通过手动配置系统镜像、安装 Weston 合成器、调整 UFW 规则及集成 LibHoudini 翻译层,实现在 Linux 桌面流畅运行 Android 应用,满足开发与日常使用需求。

CoderByte发布于 2026/3/16更新于 2026/6/1620 浏览
Ubuntu 24.04 下使用 Waydroid 运行 Android 应用指南

Waydroid 简介

Waydroid 是一个基于容器的开源工具,允许用户在 Linux 系统上运行完整的 Android 系统。它利用 Linux 内核的命名空间和 cgroups 功能,通过轻量级虚拟化技术实现 Android 应用的兼容性,无需传统虚拟机的高开销。

核心特性

  • 轻量级:基于容器技术,资源占用远低于传统虚拟机(如 VirtualBox)。
  • 高性能:直接使用宿主机的 Linux 内核,支持硬件加速(如 GPU)。
  • 兼容性:支持大多数 Android 应用,包括依赖 Google 服务框架的应用(需额外配置)。
  • 集成性:Android 应用可与 Linux 桌面环境无缝交互(如窗口模式、共享剪贴板)。

技术原理

Waydroid 由两部分组成:

  1. Waydroid 容器:运行 Android 系统的用户空间,基于 LineageOS 或 AOSP。
  2. Waydroid 服务:管理容器生命周期,处理与宿主机(如输入、显示)的交互。

依赖 Linux 内核的以下功能:

  • binderfs:提供 Android 的 Binder IPC 机制。
  • ashmem:实现共享内存。
  • 硬件加速:通过 VirglRenderer 或宿主 GPU 驱动支持图形渲染。

系统要求

  • Linux 内核 ≥ 5.4(需启用 binderfs 和 ashmem)。
  • 支持 Vulkan 的 GPU(推荐)或 VirglRenderer。
  • 至少 4GB 内存(建议 8GB 以上)。

常见问题与优化

  • 应用崩溃:检查是否启用硬件加速,或尝试切换图形后端(如 waydroid prop set ro.hardware.gralloc=default)。
  • 网络问题:确保宿主机网络正常,Waydroid 默认共享宿主机网络。
  • 输入法支持:在 Android 设置中手动启用第三方输入法。

性能优化方面,建议使用主流的 Wayland 合成器(如 Sway、GNOME on Wayland)以获得更好的窗口管理。分配更多 CPU 核心给容器(通过 waydroid prop set ro.cpuset.cpus=0-3),并关闭不必要的 Android 后台服务以节省资源。

在这里插入图片描述

在这里插入图片描述

安装准备

首先更新系统并安装必要的依赖工具:

sudo apt install curl ca-certificates -y
curl -s https://repo.waydro.id | sudo bash
sudo apt install waydroid -y
sudo systemctl enable --now waydroid-container

执行完成后,可以在应用菜单中找到 Waydroid 图标并启动。

在这里插入图片描述

镜像配置

首次初始化时需要下载镜像文件,但直接下载速度可能较慢。此时可以手动下载镜像包,打开 https://sourceforge.net/projects/waydroid/files/images/,可以看到 vendor 和 system 两个文件夹,进去下载对应版本的 vendor 和 system,使用常用下载工具获取。

这里提供两个官方源地址供参考:

https://zenlayer.dl.sourceforge.net/project/waydroid/images/system/lineage/waydroid_x86_64/lineage-20.0-20250809-VANILLA-waydroid_x86_64-system.zip?viasf=1
https://zenlayer.dl.sourceforge.net/project/waydroid/images/vendor/waydroid_x86_64/lineage-20.0-20250809-MAINLINE-waydroid_x86_64-vendor.zip?viasf=1

注意,如果需要下载带谷歌框架的镜像,需要选择 GAPPS 版本!

在这里插入图片描述

下载后解压,得到 vendor.img 和 system.img,将镜像复制到 waydroid 指定文件夹内:

sudo mkdir -p /usr/share/waydroid-extra/images/
sudo mv system.img /usr/share/waydroid-extra/images/
sudo mv vendor.img /usr/share/waydroid-extra/images/

初始化系统:

sudo waydroid init -f

启动与图形适配

运行 waydroid session start 尝试启动:

waydroid session start

如果看到类似 [16:42:18] WAYLAND_DISPLAY is not set, defaulting to "wayland-0" 的提示,或者报错 Wayland socket ... doesn't exist,这通常是因为 NVIDIA 显卡与 Ubuntu 桌面环境的兼容性问题。

这个问题比较常见,可以通过安装 Weston 合成器解决:

sudo apt install weston -y

重新启动时指定环境变量:

export WAYLAND_DISPLAY=wayland-1
waydroid session start

成功启动后,界面应该能正常显示。

在这里插入图片描述

网络配置

默认情况下,模拟器可能是断网的,需要配置防火墙规则才能联网。

打开模拟器的终端窗口,执行以下命令开放必要端口:

sudo ufw allow 53
sudo ufw allow 67
sudo ufw default allow FORWARD
sudo ufw reload
sudo ufw status
sudo ufw enable

修改浏览器默认引擎后,重新打开首页即可正常使用网络功能。

在这里插入图片描述

安装应用商店

推荐使用 F-Droid 作为应用来源:

https://f-droid.org/FDroid.apk

使用下载器下载 FDroid.apk,然后使用以下指令安装:

waydroid app install FDroid.apk

F-Droid 更换为清华源以提升下载速度:

https://mirrors.tuna.tsinghua.edu.cn/fdroid/repo/?fingerprint=43238D512C1E5EB2D6569F4A3AFBF5523418B82E0A3ED1552770ABB9A9C9CCAB

ARM 翻译层支持

为了运行更多非 x86 架构的 Android 应用,可以安装 ARM 翻译层(LibHoudini)。

首先停止容器:

# 停止容器
sudo systemctl stop waydroid-container

克隆脚本仓库并创建环境:

git clone https://github.com/casualsnek/waydroid_script
cd waydroid_script
python3 -m venv venv
venv/bin/pip install -r requirements.txt

安装 lzipsudoaptinstall lzip # 安装 libhoudini (ARM 转译层)sudo venv/bin/python3 main.py install libhoudini

修复后的命令如下:

# 安装 lzipsudoaptinstall lzip
sudo apt install lzip

# 安装 libhoudini (ARM 转译层)
sudo venv/bin/python3 main.py install libhoudini

启动容器:

# 启动容器
sudo systemctl start waydroid-container

此时可以尝试安装 TapTap 等应用。

在这里插入图片描述

触屏功能设置

在使用 Waydroid 时,某些应用可能需要模拟 touch 事件。例如,修复某些游戏中无法拖动进度条的问题,可以通过以下命令实现:

# waydroid prop set persist.waydroid.fake_touch xxx.xxx.xxx
# 注意填写正确的应用信息
waydroid prop set persist.waydroid.fake_touch com.hypergryph.arknights

在这里插入图片描述

目录

  1. Waydroid 简介
  2. 核心特性
  3. 技术原理
  4. 系统要求
  5. 常见问题与优化
  6. 安装准备
  7. 镜像配置
  8. 启动与图形适配
  9. 网络配置
  10. 安装应用商店
  11. ARM 翻译层支持
  12. 停止容器
  13. 安装 lzipsudoaptinstall lzip
  14. 安装 libhoudini (ARM 转译层)
  15. 启动容器
  16. 触屏功能设置
  17. waydroid prop set persist.waydroid.fake_touch xxx.xxx.xxx
  18. 注意填写正确的应用信息
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 飞算 JavaAI 智能编程助手简介
  • 飞算 JavaAI 智能编程助手功能介绍
  • 飞算 JavaAI 智能编程助手功能与使用体验
  • AI 辅助开发工具提升 Java 项目交付效率
  • FPGA 数字识别中的 3x3 图像窗口移位缓存模块设计
  • 飞算 JavaAI:基于自然语言的 Java 智能开发实战
  • 基于 AI 辅助的在线考试系统全流程开发实战
  • AI 驱动的在线考试系统全流程开发实践
  • 本地部署 DeepSeek R1 模型并集成至 Dify 平台
  • Linux 用户登录限制、审计日志与超时退出配置
  • Java 开发中利用 AI 工具自动修复常见 Bug 的实测体验
  • 飞算 JavaAI 工具深度评测与实战指南
  • 飞算 JavaAI:Java 开发智能辅助工具深度体验
  • Kestrel:.NET 核心 Web 服务器深度解析
  • Java AI 开发实战:从代码生成到架构优化指南
  • Java AI 辅助开发实战:从代码生成到架构优化指南
  • 飞算 JavaAI 插件使用体验与功能分析
  • Java 编译报错 No interface expected here 的排查与修复
  • Java AI 编程实测:从自然语言生成完整工程,初中级开发者效率分析
  • 飞算 JavaAI 深度体验与功能测评

相关免费在线工具

  • Keycode 信息

    查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

  • Escape 与 Native 编解码

    JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

  • JavaScript / HTML 格式化

    使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online

  • JavaScript 压缩与混淆

    Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online