Skip to content

preStartGameByPkgPath

预启动游戏(通过本地文件路径)

preStartGameByPkgPath 允许开发者指定一个本地的**游戏资源压缩包(.zip)**进行深度的预启动。它在 preLoadGameByFilePath 的基础上,进一步激活了游戏的业务逻辑层。

调用此接口后,SDK 会完成文件的解压、Runtime 初始化,并直接运行游戏脚本进入其加载首屏的逻辑。这是在离线部署或自定义资源分发场景下,能提供最快启动速度的方案。


方法声明

java
/**
 * 预启动游戏,根据游戏包本地文件路径
 *
 * @param pkgPath  pkgPath
 * @param params   包含本地文件路径及初始化配置的参数对象
 * @param listener 预启动状态监听器
 * @return SUDOPGameTask 任务句柄,用于管理预启动的游戏实例
 */
public static SUDOPGameTask preStartGameByPkgPath(String pkgPath, SUDOPGamePackageParams params, SUDOPPreStartGameListener listener);

参数说明

属性类型描述
filePathString必填。游戏资源压缩包(.zip)在设备上的绝对路径。

1. SUDOPGamePackageParams

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

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

2. FIDType

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

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

3. SUDOPPreStartGameListener

  • void onSuccess(String gameId, SUDRTGameHandle handle):预启动成功。游戏已在后台完成首屏逻辑运算和渲染准备。
  • void onFailure(int retCode, String retMsg):预启动失败。常见原因:路径无效、Zip 包损坏或内存不足。

运行行为

  1. 同步解压:SDK 将指定的 .zip 文件解压至内部工作目录。
  2. 脚本激活:不同于预加载仅准备环境,预启动会直接调用游戏的入口脚本,触发游戏内部的 onLoad 等生命周期函数。
  3. 静默运行:游戏在后台进行必要的网络请求预取和资源解码,并将画面渲染至内存缓冲区。
  4. 即时复用:当用户正式触发启动时,SDK 会直接复用此 handle 关联的实例,跳过所有初始化耗时。

代码示例

java
String pkgPath = getFilesDir().getAbsolutePath() + "/offline_bundles/game_202.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.preStartGameByPkgPath(pkgPath, params, new SUDOPPreStartGameListener() {
    @Override
    public void onSuccess(String gameId, SUDRTGameHandleProvider provider) {
    }
    @Override
    public void onFailure(int retCode, String retMsg) {
    }
});

// 注意:如果用户取消进入游戏,务必销毁任务
// task.destroy();

注意事项

  • 资源消耗:由于涉及文件解压及脚本持续运行,此接口对 CPU 和内存的占用较高。
  • 文件权限:请确保 App 拥有对该路径文件的读取权限。
  • 任务销毁:预启动会产生一个真实的游戏运行实例。若不确定用户是否会进入游戏,请在页面不可见时及时调用 task.destroy()