目录

一 国内现状... 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/游戏

android x86架构 x86架构安卓应用_虚拟化

android x86架构 x86架构安卓应用_指令集_02

3.4 存在问题

   a. 兼容性差,大部分app运行不了

   b. 有些app运行一段时间后会自动退出(闪退)

   c. 依赖intel库

 

3.5 优点

   一块显卡可以带多个安卓虚拟机,实现多路高并发

四 技术难点

  1. 虚拟化

  2. 机器资源调度

  3. 游戏的适配

  4. 端到端的流传输协议(RTC)

  5. 网络时延