使用 redroid 搭建自己的云端 Android 主机

通过本教程,你将学习:

  • 在 Olares 宿主机上安装并配置运行 redroid 所需的内核依赖。
  • 在 Olares 上安装 redroid 应用。
  • 在 Windows 和 macOS 上通过 ADB 和 scrcpy 连接并操作安卓模拟器。
  • 安装第三方 APK 应用。

想在本地服务器上运行完整的 Android 系统?redroid (Remote Android) 是一款基于 GPU 加速的云端 Android(AIC,Android in Cloud)解决方案,完美适配 Olares。你可以在 Olares 上轻松托管高性能 Android 实例。远程访问并运行 Android 游戏、Android 应用,甚至批量自动化测试都不在话下。
本教程将带你在 Olares 上完成 ReDroid 的安装与配置,并在 Windows 和 macOS 上通过 adb 与 scrcpy 实现远程连接与使用。

开始之前

在开始之前,请确保满足以下条件:

  • Olares 已安装并运行。

    建议配置
    redroid 项目消耗系统资源较多,建议 Olares 安装在 8 核 16G 内存 上。

  • 连接设备和 Olares 处于同一局域网。

    远程连接
    如连接设备和 Olares 在不同网络,需要在设备上安装 LarePass 客户端以启用专用网络,可在 LarePass 官网下载正确的版本。

安装 Linux 内核依赖模块

在 Linux 系统运行安卓模拟服务需要安装特点内核依赖模块,详见 详见官方文档
以 Ubuntu 系统为例,可在终端执行以下命令安装内核模块:

sudo apt install linux-modules-extra-`uname -r`
sudo modprobe binder_linux devices="binder,hwbinder,vndbinder"
# 高内核版本可忽略以下命令报错
sudo modprobe ashmem_linux

安装 redroid 应用

  1. 打开 Olares 应用市场,在“系统工具”分类下找到 redroid,点击获取
  2. 获取对外服务网址。安装完成后,从 Olares 桌面进入设置 > 应用 > redroid
    a. 在端点设置里获取ReDroid 地址 beb583c3.<your Olares ID>.olares.cn.
    b. 在导出端口下获取对外访问端口 46878
    c. 在 URL 里加入 local 关键字以实现本地模式访问。
    这样,我们就得到了 redroid 的对外服务网址,如 beb583c3.local.<olares_id>.olares.cn:46878

连接服务

Olares 服务器运行的 redroid 是一个完全的后端应用。我们需要用安卓调试程序 adb 连接它,然后用 scrcpy 进行屏幕渲染。

Windows 设备

Windows 版本的 scrcpy 自带集成了 adb 工具,用户下载官方 Windows 版压缩包后,解压即可直接使用:

注意
如果你本地已安装了其他版本的 adb,可能会出现 adb server 版本不一致导致的连接问题。此时可以卸载先前安装的版本,或将其替换为 scrcpy 使用的版本。

  1. 从项目官方页面下载 scrcpy,并解压至指定目录。

  2. 打开 PowerShell,进入 scrcpy 目录,如:
    cd .\scrcpy-win64-v3.1

  3. 使用 adb 连接运行在 Olares 的远程 Android 实例。

    # 请将 <olares_id> 替换为你自己的 Olares ID
    .\adb.exe connect beb583c3.local.<olares_id>.olares.cn:46878
    # 示例输出:
    connected beb583c3.local.<olares_id>.olares.cn:46878
    

    连接成功可看到如示例中的提示信息。

  4. 用 scrcpy 渲染并输出界面和音频:

    .\scrcpy.exe -s beb583c3.local.harvey063.olares.cn:46878 --audio-codec=aac --audio- 
     encoder=OMX.google.aac.encoder`
    

    连接成功后,屏幕会弹出安卓界面的投屏窗口。你可以用鼠标或触摸板操控。

Mac 设备

Mac 版的 scrcpy 没有集成 adb,需要你单独安装 adb 工具。推荐使用 Homebrew 方式安装,步骤如下:

  1. 安装 scrcpy。
    brew install scrcpy

  2. 安装 adb。
    brew install --cask android-platform-tools

  3. 验证安装。

    scrcpy --version
    adb version
    

    看到对应的版本即表示安装成功。

    解除阻止
    如果adb 或 scrcpy 被禁用,可以打开macOS的 设置 > 隐私与安全性 > 安全性页面,找到对应的阻止项并选择仍要打开。再次运行,输入密码即可正常运行。

  4. 使用 adb 连接运行在 Olares 的远程 Android 实例。

    # 请将 <olares_id> 替换为你自己的 Olares ID
    adb connect beb583c3.local.<olares_id>.olares.cn:46878
    

    看到 connected beb583c3.local.<olares_id>.olares.cn:46878则代表连接成功

  5. 用 scrcpy 渲染并输出界面和音频:
    scrcpy -s beb583c3.local.<olares_id>.olares.cn:46878 --audio-codec=aac --audio-encoder=OMX.google.aac.encoder
    运行成功后,你就可以看到模拟的android桌面了

安装 apk 应用

你可以通过 adb 安装下载到本地 apk 应用。

注意
以下命令示例基于 Windows 环境,使用 .exe 执行文件。
如果你使用的是 macOS,请将命令中的 .exe 去掉即可。

  1. 查看当前连接设备及其 transport_id

    .\adb.exe devices -l
    
    # 示例输出:
    List of devices attached
    beb583c3.local.olares02.olares.cn:46878 device product:ziyi model:23031PN0DC device:ziyi transport_id:4
    
  2. 在指定设备上安装 apk 应用。例如,transport_id 为 4:

    \adb.exe -t 4 install C:\Users\YourName\Downloads\your_app.apk
    
    # 示例输出:
    Performing Streamed Install
    Success
    

    安装成功后,会看到 Success 的提示。此时,你再重新执行 scrcpy 命令连接手机,上划屏幕,就能看到刚刚安装的应用了。

常见 adb 命令参考

# 启动adb
adb start-server
# 连接设备
adb connect url:port
# 查看当前已连接设备列表
adb devices 
# 断开链接
adb disconnect url:port
# 手动安装应用
adb -t 3(transport_id,设备列表可看到) install xx.apk
# 查看日志
adb logcat
# 导出日志
adb logcat -v time > log.txt
# 将文件从本地推送到设备
adb push <本地路径> <设备路径>
# 将文件从设备拉取到本地
adb pull <设备路径> <本地路径>
# 列出设备目录内容
adb shell ls <路径>
# 查看设备文件内容
adb shell cat <文件路径>
# 重启
adb shell
# 关机
adb shell reboot -p

当前使用限制

  1. 系统资源调度。当前版本一直在使用CPU,导致系统 avg 消耗过高,GPU的使用问题仍在调试。
  2. 网络的稳定性,有些APP使用过程中会断网。
  3. 部分APP,如微信无法启动。
  4. 目前输出的声音略小。