Wayland 桌面下非常好用的安卓运行环境—waydroid,极度推荐!!!

Wayland 桌面下非常好用的安卓运行环境—waydroid,极度推荐!!!

Waydroid 在 wayland 桌面环境下表现优异,如果你用的是 ubuntu 22.04 以上,那么就安装waydroid 作为安卓运行环境。

1.添加源
curl https://repo.waydro.id | sudo bash
2.安装
sudo apt install waydroid -y

打开 waydroid ,会提示下载镜像,官方的镜像下载非常慢,关闭选择手动下载。

打开 https://sourceforge.net/projects/waydroid/files/images/ ,可以看到 vendorsystem 两个文件夹,进去下载对应版本的 vendor 和 system,推荐使用 motrix 下载,效果比迅雷都好。

3.解压下载好的文件,得到 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/
4.初始化系统,等待几分钟
waydroid init -f
5.运行 waydroid
waydroid session start
6.默认全屏显示,修改让其窗口显示
waydroid prop set persist.waydroid.width 506
waydroid prop set persist.waydroid.height 1133

重启 waydroid-container 生效

在这里插入图片描述

要移动窗口,可以按住 Super(Windows 徽标)键然后拖动,或按Alt+F7 然后移动鼠标光标 ,无需点击鼠标。

7.此时还只能安装运行 x86 架构的安卓应用,安装 ARM 架构的 apk,无法成功安装,还需要安装 arm 翻译层

安装 waydroid_script:

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
sudo apt install lzip
sudo venv/bin/python3 main.py install libhoudini

安装成功过后,再次安装 apk 程序,就能正常运行,程序菜单里也会出现快捷方式。

启动服务进程:

sudo systemctl start waydroid-container

此时就能正常安装软件了:

waydroid app install your_app.apk
8.安装宽屏补丁,让程序可以像平板一样横屏显示
sudo systemctl stop waydroid-container
sudo venv/bin/python3 main.py install widevine
sudo systemctl start waydroid-container
9.开启多窗口模式
waydroid prop set persist.waydroid.multi_windows true
sudo systemctl restart waydroid-container
10.不喜欢命令操作,可以安装 waydroid 运行器,图形化配置

在这里插入图片描述

下载:https://gitee.com/gfdgd-xi/waydroid-runner

在星火应用商店里搜索,可以直接安装运行。

11.共享本地文件夹访问,共享文件要在系统启动后挂载才能使用
sudo mount --bind ~/Documents ~/.local/share/waydroid/data/media/0/Documents 
sudo mount --bind ~/Downloads ~/.local/share/waydroid/data/media/0/Download 
sudo mount --bind ~/Music ~/.local/share/waydroid/data/media/0/Music 
sudo mount --bind ~/Pictures ~/.local/share/waydroid/data/media/0/Pictures 
sudo mount --bind ~/Videos ~/.local/share/waydroid/data/media/0/Movies
12.安装控制 app 的键盘映射,在电脑上玩安卓游戏

安装 scrcpy-mask,它提供自主设置键盘的功能,模仿手游端操作。

下载地址:https://github.com/AkiChase/scrcpy-mask/releases

输入 waydroid status查看IP Address,复制 ip 地址,粘贴到 scrcpy-mask 无线连接地址输入栏里,注意要加端口号,端口号为 5555,连接后在可用设备里会显示可连接设备,双击添加成为受控设备。

在这里插入图片描述

在这里插入图片描述

根据设备的显示宽高,调整 scrcpy-mask 蒙版大小,使它刚好覆盖显示屏幕,然后再讲触摸点添加控制按键,就可以通过按键操作游戏了。

13.避免窗口上出现多个鼠标指针
waydroid prop set persist.waydroid.cursor_on_subsurface true
14.app 安装后会在程序菜单里创建桌面快捷方式,一些用不到的如系统设置、相册、电话等 app,可以在下列目录中找到,删除不需要的快捷方式

~/.local/share/applications

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个简单的示例代码,用于在Wayland环境下创建一个简单的桌面: ``` #include <wayland-client.h> #include <wayland-egl.h> #include <wayland-cursor.h> #include <wayland-client-protocol.h> #include <wayland-xdg-shell-client-protocol.h> static struct wl_display *display; static struct wl_registry *registry; static struct wl_compositor *compositor; static struct xdg_wm_base *wm_base; static struct wl_surface *surface; static struct xdg_surface *xdg_surface; static struct xdg_toplevel *xdg_toplevel; static void registry_global(void *data, struct wl_registry *registry, uint32_t id, const char *interface, uint32_t version) { if (strcmp(interface, "wl_compositor") == 0) { compositor = wl_registry_bind(registry, id, &wl_compositor_interface, 4); } else if (strcmp(interface, "xdg_wm_base") == 0) { wm_base = wl_registry_bind(registry, id, &xdg_wm_base_interface, 1); } } static void registry_global_remove(void *data, struct wl_registry *registry, uint32_t id) { // do nothing } static const struct wl_registry_listener registry_listener = { registry_global, registry_global_remove }; int main(int argc, char *argv[]) { // connect to the Wayland display server display = wl_display_connect(NULL); if (display == NULL) { fprintf(stderr, "Failed to connect to Wayland display\n"); return -1; } // get the registry object registry = wl_display_get_registry(display); if (registry == NULL) { fprintf(stderr, "Failed to get Wayland registry\n"); wl_display_disconnect(display); return -1; } // add listener for registry events wl_registry_add_listener(registry, &registry_listener, NULL); // roundtrip to get global objects wl_display_roundtrip(display); if (compositor == NULL || wm_base == NULL) { fprintf(stderr, "Failed to get required Wayland objects\n"); wl_registry_destroy(registry); wl_display_disconnect(display); return -1; } // create a Wayland surface surface = wl_compositor_create_surface(compositor); if (surface == NULL) { fprintf(stderr, "Failed to create Wayland surface\n"); wl_registry_destroy(registry); wl_display_disconnect(display); return -1; } // create an xdg surface xdg_surface = xdg_wm_base_get_xdg_surface(wm_base, surface); if (xdg_surface == NULL) { fprintf(stderr, "Failed to create xdg surface\n"); wl_registry_destroy(registry); wl_display_disconnect(display); return -1; } // create an xdg toplevel xdg_toplevel = xdg_surface_get_toplevel(xdg_surface); if (xdg_toplevel == NULL) { fprintf(stderr, "Failed to create xdg toplevel\n"); wl_registry_destroy(registry); wl_display_disconnect(display); return -1; } // set the window title xdg_toplevel_set_title(xdg_toplevel, "My Wayland Desktop"); // set the window size xdg_toplevel_set_min_size(xdg_toplevel, width, height); xdg_toplevel_set_max_size(xdg_toplevel, width, height); // show the window wl_surface_commit(surface); xdg_toplevel_set_active(xdg_toplevel); // enter the Wayland event loop while (wl_display_dispatch(display) != -1) { // do nothing } // cleanup xdg_toplevel_destroy(xdg_toplevel); xdg_surface_destroy(xdg_surface); wl_surface_destroy(surface); wl_registry_destroy(registry); wl_display_disconnect(display); return 0; } ``` 这段代码使用Wayland的 Compositor 和 XDG Shell 协议来创建一个简单的窗口,并设置窗口的标题和大小,最后进入 Wayland 的事件循环。需要注意的是,这只是一个简单的示例代码,实际的桌面程序可能需要更复杂的功能和交互方式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值