亚马逊AWS官方博客
基于 Graviton4 实例和 Redroid 搭建云手机
Amazon Graviton4 简介
2023 re:Invent 大会宣布了 Amazon Graviton4 处理器,该芯片使用 ARM Neoverse V2 内核定制设计的 ARM 架构构建,集成了 730 亿个晶体管,针对提供高性能和能效进行了优化。
最近,亚马逊云科技陆续宣布 Amazon EC2 R8g/M8g/C8g 实例正式上线,这些实例由 Graviton4 处理器提供支持,基于 Amazon Nitro 系统构建,通过将 CPU 虚拟化、存储和网络功能卸载到专用硬件和软件上,增强了工作负载的性能和安全性。
- R8g 实例非常适合内存密集型工作负载,如数据库、内存缓存和实时大数据分析。
- M8g 实例非常适合应用程序服务器、微服务、游戏服务器、中型数据存储和缓存实例集等应用程序。
- C8g 实例基于非常适合计算密集型工作负载,如高性能计算(HPC)、批处理、游戏、视频编码、科学建模、分布式分析、基于 CPU 的机器学习(ML)推理和广告投放。
与基于 Amazon Graviton3 的实例相比,性能提升高达 30%,能耗降低 60%。通过下图,您可以概览 Graviton4 和 R8g 实例相比上一代的改进和增强,您还可以通过查看 Amazon EC2 R8g 实例,Amazon EC2 M8g 实例,Amazon EC2 C8g 实例 和 Amazon Graviton Technical Guide 了解更多详细信息。
更多 Graviton 实例请查看 AWS Graviton 处理器。
Redroid 简介
Redroid(Remote anDroid)是 AIC(Android In Cloud)解决方案。您可以在 Linux 主机中启动许多实例(Docker、podman、k8s 等)。同时支持 arm64 和 amd64 架构,适用于云游戏、虚拟化电话、自动化测试等。
在 Graviton 实例安装并启动 Redroid 容器
本文以 c8g 实例展示云手机环境的搭建过程,您可以此作为参考在其他 Graviton 实例完成环境搭建。
创建 EC2 实例
本次使用单实例测试环境,所有软件均部署在该实例。您可以参考教程:Amazon EC2 Linux 实例入门完成这台 EC2 实例的创建。
- 实例规格和数量:1 * c8g.large(2 vCPU, 4GB 内存)
- EBS 磁盘:20GB GP3(默认性能为 125MB/s 吞吐,3,000 IOPS)
- 操作系统:Ubuntu 20.04
您可以在 Amazon EC2 AMI Locator 查找需要的 Ubuntu OS 对应的 AMI ID。
安装基础软件包
通过 SSH 登录到 EC2 实例(ubuntu 用户),执行下面命令安装必须的基础软件。
安装 Docker 组件:
安装内核模块:
检查内核模块状态:
关于其他操作系统下的部署指导请查看 Deploy redroid
安装 ADB 工具:
拉取 Redroid 容器镜像
您可以在 https://github.com/remote-android/redroid-doc 查询目前 Redroid 支持的 Android 版本,例如:
- Android 15 (redroid/redroid:15.0.0-latest)
- Android 15 64bit only (redroid/redroid:15.0.0_64only-latest)
- Android 14 (redroid/redroid:14.0.0-latest)
- Android 14 64bit only (redroid/redroid:14.0.0_64only-latest)
- Android 13 (redroid/redroid:13.0.0-latest)
- Android 13 64bit only (redroid/redroid:13.0.0_64only-latest)
- Android 12 (redroid/redroid:12.0.0-latest)
- Android 12 64bit only (redroid/redroid:12.0.0_64only-latest)
- Android 11 (redroid/redroid:11.0.0-latest)
- Android 10 (redroid/redroid:10.0.0-latest)
- Android 9 (redroid/redroid:9.0.0-latest)
- Android 8.1 (redroid/redroid:8.1.0-latest)
以 redroid/redroid:13.0.0_64only-latest 为例,拉取 docker 镜像:
启动 Redroid 容器
使用 docker run 命令启动 Redroid 容器
其中的启动参数说明:
Param | Description | Default | |
androidboot.redroid_width | 显示宽度 | 720 | |
|
显示高度 | 1280 | |
androidboot.redroid_dpi | 显示 DPI | 320 |
您可以根据自己的显示需求进行设置,更多参数请参考 configuration
查看已经启动的容器:
通过 adb 连接到本地 Redroid 容器模拟的 Android 设备:
提示:请在 EC2 所在安全组的入站规则中放通 5555 端口。
在本地 PC 安装客户端工具
本章节以 MacOS 系统为例介绍如何安装客户端所需工具。
- adb:Android 调试桥(adb) 是一种功能多样的命令行工具,可让您与设备进行通信。adb 命令可用于执行各种设备操作,例如安装和调试应用。
- scrcpy:Screen Copy 通过 USB 或 TCP/IP 连接的 Android 设备(视频和音频),并允许使用计算机的键盘和鼠标控制设备,它适用于 Linux、Windows 和 macOS。
安装 adb 和 scrcpy
远程连接到 Redroid 容器
在 MacOS 的 Terminal 终端,通过 adb 连接已启动的 Redroid 容器:
通过 scrcpy 远程连接到 Redroid 容器:
scrcpy 在本地 PC 弹出一个图形界面展示了 Android 界面:
您可以通过 User documentation 查看更多 scrcpy 参数和用法。
通过 adb 安装 App 应用
本章节演示如何通过 apk(Android Package) 文件来安装 Android App 应用
将 app.apk 文件拖拽到 Redroid 的图形界面,在终端界面会有对应的提示信息:
在安装完成后,在 Redroid 图形界面和终端界面也可以看到对应提示和 App:
打开 App 进行相应的操作: