Skip to content

preLoadGameByUrl

预加载游戏(通过游戏包 URL)

preLoadGameByUrl 方法支持通过一个远程 URL 地址直接进行预加载。该接口集成了“下载”与“环境初始化”两个阶段:SDK 会先将 URL 指向的游戏包下载到本地缓存,随后立即执行解压及运行时环境的加载。

此方法适用于测试环境下的快速预览,或业务侧拥有独立资源服务器、希望绕过 SDK 默认版本分发逻辑的场景。


方法声明

java
/**
 * 预加载游戏,根据游戏包 URL
 *
 * @param url       pkg url
 * @param params    包含游戏包 URL 地址的参数对象
 * @param listener  预加载状态监听器
 * @return SUDOPGameTask 任务句柄,可用于管理或销毁预加载任务
 */
public static SUDOPGameTask preLoadGameByUrl(String url, SUDOPGamePackageParams params, SUDOPPreLoadGameListener listener);

参数说明

用于指定远程资源的位置:

属性类型描述
urlString必填。游戏资源压缩包(.zip)的完整远程下载地址。

1. SUDOPGamePackageParams

用于指定具体的资源下载链接:

属性类型描述
versionString必填。游戏版本
fidString游戏包文件指纹
fidTypeFIDType游戏包文件指纹生成方式
appGameIDString必填。指定gameID
appCPIDString指定游戏开发者的CP ID
appGroupIDString指定游戏开发者的Group ID

2. FIDType

用于指定游戏包文件指纹生成方式

属性类型描述
MD5enumMD5算法
CRC32enumCRC32算法
SHA1enumSHA1算法
SHA256StrenumingSHA256算法

3. SUDOPPreLoadGameListener

用于接收预加载过程的回调:

  • void onSuccess(String gameId, SUDRTGameHandle handle):预加载完成。

  • gameId:从下载的资源包中解析出的游戏唯一标识。

  • handle:游戏实例句柄。

  • void onFailure(int retCode, String retMsg):预加载失败。可能原因包括 URL 无效、网络超时、下载包损坏或内存不足。


运行行为

  1. 资源获取:SDK 首先检查本地是否有该 URL 对应的缓存。若无,则启动多线程下载。
  2. 校验与解压:下载完成后进行文件 MD5 校验(若支持)并解压至沙盒目录。
  3. 引擎初始化:启动运行时(Runtime),加载 JS 引擎及核心资源。
  4. 后台运行:游戏实例进入挂起状态。当最终调用启动接口时,可实现“秒开”效果。

代码示例

java
// 1. 设置下载 URL 参数
String url = "https://example.com/assets/game_package_v2.zip";

// 2. 发起预加载
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.preLoadGameByUrl(url, params, new SUDOPPreLoadGameListener() {
    @Override
    public void onSuccess(String gameId, SUDRTGameHandleProvider provider) {
    }
    @Override
    public void onFailure(int retCode, String retMsg) {
    }
});

// 必要时取消任务
// preLoadTask.destroy();

注意事项

  • 网络开销:由于该方法包含下载过程,在非 Wi-Fi 环境下调用需注意流量消耗。
  • 资源清理:通过 URL 加载的资源通常会遵循 SDK 的缓存清理策略。
  • URL 安全:请确保传入的链接安全可靠,避免加载未授权的第三方资源包。