Skip to content

Android端快速接入

下载 Demo

说明:本指南介绍了 SUDGI SDK 的极速集成方式。通过 auth 鉴权后,开发者可以直接通过 gameId 一键启动游戏,并利用 SUDOPGameTask 管理游戏生命周期。


一、 引入 SDK 与工程配置

1. 方式 A:通过 Gradle 引入

在项目根目录的 build.gradle 中配置仓库,并在应用层级 build.gradle 中添加依赖:

gradle
dependencies {
    implementation 'com.sud.gi:sudgi:latest.release' // 建议使用最新版本
}

2. 方式 B:手动引入

  • sudgi.aar 文件拷贝至 libs 目录。
  • build.gradle 中添加:implementation files('libs/sudgi.aar')

二、 SDK 初始化

Application 或主 Activity 启动时执行,用于验证 App 身份。

java
SUDOPInitSDKParams params = new SUDOPInitSDKParams();
params.context = getApplicationContext();
params.appId = "您的 AppID";
params.appKey = "您的 AppKey";

SUDOP.initSDK(params, new SUDOPInitSDKListener() {
    @Override
    public void onSuccess() {
        Log.d("SUDOP", "SDK 初始化成功");
    }

    @Override
    public void onFailure(int retCode, String retMsg) {
        Log.e("SUDOP", "初始化失败: " + retMsg);
    }
});

三、 用户鉴权 (auth)

在启动游戏前,必须同步业务后端生成的 userSignature,以建立合法的用户会话。

java
SUDOPAuthParams authParams = new SUDOPAuthParams();
authParams.userSignature = "业务后端下发的签名字符串";

SUDOP.auth(authParams, new SUDOPAuthListener() {
    @Override
    public void onSuccess() {
        Log.d("SUDOP", "用户鉴权成功");
    }

    @Override
    public void onFailure(int retCode, String retMsg) {
        Log.e("SUDOP", "鉴权失败: " + retMsg);
    }
});

四、 极速启动游戏

通过 startGameByGameId 直接拉起游戏。SDK 会自动处理下载、解压、环境初始化及渲染。

java
SUDOPStartGameByGameIdParams startParams = new SUDOPStartGameByGameIdParams();
startParams.gameId = "game_101";

// 返回的 task 对象用于后续销毁
SUDOPGameTask gameTask = SUDOP.startGameByGameId(startParams, new SUDOPStartGameListener() {
    @Override
    public void onSuccess(String gameId, SUDRTGameHandle handle) {
        // 1. 获取游戏 View 并添加到布局中
        View gameView = handle.getGameView();
        containerLayout.addView(gameView);

        // 2. 注册业务代理以接收用户信息请求等回调
        // handle.registerWrappedClient(myWrappedClient); 
    }

    @Override
    public void onProgress(int progress) {
        Log.d("SUDOP", "游戏加载进度: " + progress + "%");
    }

    @Override
    public void onFailure(int retCode, String retMsg) {
        Log.e("SUDOP", "启动失败: " + retMsg);
    }
});

五、 销毁与资源释放

当用户退出游戏页面(如 onStoponDestroy)时,调用 destroy 方法。

java
@Override
protected void onDestroy() {
    super.onDestroy();
    if (gameTask != null) {
        // 销毁游戏实例并释放所有占用的内存和 CPU 资源
        gameTask.destroy();
        gameTask = null;
    }
}