跳转至

制作游戏镜像

制作游戏镜像是在安卓云游戏场景中较为常见的一项任务,可以用于将游戏快速挂载到实例中使用。下面介绍如何使用 iPaaS 提供的开放接口来制作游戏镜像。

创建应用数据卷

应用数据卷用于存储手机游戏的 apk、热更等数据。

调用 VolumeService.CreateVolume 接口创建一个应用数据卷:

{
  name,
  volume_type: ultima.VolumeType.VOLTYPE_ANDROID_CONTAINER_APP_DATA,
  volume_config: {
    android_container_app_data: {
      size,
      system_volume_id,
      package_name,
      uid,
    },
  },
  placement: { shape_name, datacenter },
}

创建完成后,记录返回的 volume_id

挂载应用数据卷到实例

我们选择任意一个实例,作为样板机使用,然后调用 AndroidContainerInstanceService.MountAppDataVolume 将游戏镜像以读写的方式挂载上去:

{
  instance_id,
  app_data_volume: {
    volume_id,
    mutable: true,
  },
}

安装游戏

调用 AndroidContainerInstanceService.InstallApkAsync 来安装游戏 apk,这里可以指定一个 UID:

{
  instance_id,
  package_name,
  uid,
  url,
}

检查游戏并热更

通过 scrcpy 或者其他方式远程连入实例,检查游戏是否安装好。如果有热更,手动进行热更。

卸载应用数据卷

注意

请一定在完成镜像制作后,进一步操作之前,卸载应用数据卷,否则游戏数据可能得不到保存。

你可以调用 AndroidContainerInstanceService.UnmountAppDataVolume 以卸载应用数据卷。

你也可以调用 InstanceService.TerminateInstances 关闭并删除上文中提到的实例,这将自动卸载实例上所有的卷。