目录
一 国内现状... 1
二 实现方案... 1
三 测试方案... 2
四 技术难点... 4
一 国内现状
国内云手游解决方案大致分为三种:
1.真实手机板卡机器插卡方案
2.使用ARM服务器虚拟化
3.用X86方式虚拟化ARM
| ARM64虚拟化 | X86平台虚拟化 | 真机板卡 |
性能 | 高 | 中 | 中 |
基于ARM架构实现,可充分利用云的资源调度 | 基于x86平台,需要借助houdini来做arm/x86的指令转换,存在性能损耗 | 资源固定不能按需调度 | |
兼容性 | 高 | 极差 | 高 |
与原生android应用兼容度高 | 存在指令集之间的转换兼容性问题 | 就是真实的手机,兼容度100% | |
扩展性 | 高 | 高 | 低 |
通过云计算技术,资源灵活度高 | 通过云计算技术,灵活度高 | 资源一开始就被固定,扩展性极低 |
二 实现方案
2.1 在x86机器上安装vbox虚拟化软件,然后通过vbox安装安卓操作系统(安卓模拟器)
缺点:经过了虚拟化层,并且有x86和arm的指令集转化,性能低,可能有些应用需要设配
优点:实现简单
2.2 直接是x86<->arm指令集转化
缺点:较难实现,需要熟悉指令集,需要针对不同的应用单独适配
优点:性能高
2.3 arm服务器 + arm虚拟化
缺点:需要维护arm相关虚拟化技术,技术门槛高
优点:对上层APP应用的兼容性较好
2.4 在x86机器上通过qemu虚拟出安卓x86虚拟机,然后开启x86和arm的兼容性配置
缺点:不是100%的兼容,有些APP运行不起来
优点:多路并发
2.5 Linux服务器 + 容器
缺点:兼容性
优点:性能高,并发数高
2.6 windows服务器 + 容器
缺点:兼容性
优点:可同时支持端游和手游/性能高
三 测试方案
x86架构下安装安卓x86虚拟机 + GPU
3.1 gpu透传
3.2 使用显卡虚拟化
3.3 测试
可以安装一些APP/游戏
3.4 存在问题
a. 兼容性差,大部分app运行不了
b. 有些app运行一段时间后会自动退出(闪退)
c. 依赖intel库
3.5 优点
一块显卡可以带多个安卓虚拟机,实现多路高并发
四 技术难点
1. 虚拟化
2. 机器资源调度
3. 游戏的适配
4. 端到端的流传输协议(RTC)
5. 网络时延