preStartGameByUrl
预启动游戏(通过游戏包 URL)
preStartGameByUrl 是集下载、解压、初始化与逻辑激活于一体的“全自动”预处理接口。它会从指定的 URL 下载游戏包,并在后台静默完成所有启动准备工作(包括运行游戏脚本)。
这是实现远程资源“秒开”的最强手段:当用户最终点击启动时,游戏已经处于逻辑运行状态,画面可以瞬间呈现。
方法声明
java
/**
* 预启动游戏,根据游戏包 URL
*
* @param url 游戏包 URL
* @param params 参数对象
* @param listener 预启动状态监听器
* @return SUDOPGameTask 任务句柄,用于管理下载及后台运行的游戏实例
*/
public static SUDOPGameTask preStartGameByUrl(String url, SUDOPGamePackageParams params, SUDOPPreStartGameListener listener);参数说明
| 属性 | 类型 | 描述 |
|---|---|---|
| url | String | 必填。游戏资源压缩包(.zip)的完整远程下载地址。 |
1. SUDOPGamePackageParams
用于指定具体的资源下载链接:
| 属性 | 类型 | 描述 |
|---|---|---|
| version | String | 必填。游戏版本 |
| fid | String | 游戏包文件指纹 |
| fidType | FIDType | 游戏包文件指纹生成方式 |
| appGameID | String | 必填。指定gameID |
| appCPID | String | 指定游戏开发者的CP ID |
| appGroupID | String | 指定游戏开发者的Group ID |
2. FIDType
用于指定游戏包文件指纹生成方式
| 属性 | 类型 | 描述 |
|---|---|---|
| MD5 | enum | MD5算法 |
| CRC32 | enum | CRC32算法 |
| SHA1 | enum | SHA1算法 |
| SHA256 | Strenuming | SHA256算法 |
2. SUDOPPreStartGameListener
void onSuccess(String gameId, SUDRTGameHandle handle):预启动成功。游戏已下载完毕并在后台执行首屏逻辑。void onProgress(int progress):下载进度回调(0-100)。void onFailure(int retCode, String retMsg):预启动失败。可能原因:URL 错误、网络中断、解压失败或内存不足。
运行行为
- 自动下载:SDK 优先检查本地缓存,若无匹配版本则启动多线程下载。
- 逻辑预热:下载解压完成后,立即启动 JS 引擎并执行游戏入口脚本。
- 网络加速:游戏在后台可以提前发起业务请求(如获取用户信息、连接游戏服),进一步消除等待感。
- 后台静默:在正式挂载前,所有音频会自动静音,GPU 渲染会被限制在最小负载。
代码示例
java
String url = "https://cdn.example.com/builds/game_v3.zip";
SUDOPGamePackageParams params = new SUDOPGamePackageParams();
params.version = "gamePkgVersion";
params.fid = "2e7ca170f33629c7baf4dc430c541c43";
params.fidType = FIDType.MD5;
params.appGameID = "appGameID";
params.appCPID = "Game Developer id";
params.appGroupID = "Game developer group id";
SUDOPGameTask preLoadTask = SUDOP.preStartGameByUrl(url, params, new SUDOPPreStartGameListener() {
@Override
public void onSuccess(String gameId, SUDRTGameHandleProvider provider) {
}
@Override
public void onFailure(int retCode, String retMsg) {
}
});
// 若不启动且离开场景,务必销毁以停止后台逻辑
// task.destroy();注意事项
- 流量开销:由于包含下载环节,建议在非 Wi-Fi 环境下提醒用户或限制触发。
- 资源清理:通过 URL 加载的资源受 SDK 缓存策略管理,若磁盘空间不足会自动清理旧版本。
- 生命周期管理:
preStart会创建真实的运行实例,占用 CPU 和内存。如果确定不使用,请调用task.destroy()。