跳到主要内容
GravityDock 引力聚合技术文档
GravityDock 引力聚合

Android SDK 集成

在 Android Application 中引入并初始化 GravityDock SDK,配置 GravityDock.config,接通隐私同意、生命周期与浮标流程。

查看 Markdown

1. 获取 SDK

您可以通过以下两种方式将 GravityDock SDK 引入 Android 工程。

1.1 Maven 引入(推荐)

  • 在 Project 级别的 build.gradle 文件中添加如下仓库配置:
maven {
    url "https://nexus.gravity-engine.com/repository/maven-releases/"
}
maven {
    url "https://nexus.gravity-engine.com/repository/maven-snapshots/"
}
  • 在 Module(app)工程目录下的 build.gradle 文件中添加依赖项:
implementation "cn.gravity.dock:GravityDockSDK:1.0.0"

请使用与 SDK 交付包配套的最新版本号,以获得及时的更新支持。版本信息可咨询引力运营支持团队获取。

1.2 AAR 手动引入

  • 在 GravityDock-Android-Demo Releases 页面下载最新版本的 SDK aar 包。
  • 将 GravityDockSDK.aar 复制到项目的 libs 文件夹中。
  • 在 Module(app)工程目录下的 build.gradle 文件中添加如下配置引入依赖:
dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar'])
}

2. 配置 GravityDock.config

在 app/src/main/assets/ 目录下创建 GravityDock.config 文件,SDK 启动时读取该配置确定游戏身份与渠道组件: 测试调试阶段,使用类似下卖的developer渠道配置,其他渠道在打包时会自动替换这个配置文件

{
    "GravityDockConfig": {
        "token": "引力后台游戏token",
        "channel_pk": "引力后台对应游戏developer渠道的id",
        "channel_template_id": "developer"
    },
    "sdks": [
        {
            "sdkId": "developer",
            "className": "com.gravitydock.develop.GravityDockSDKDevelopAdapter",
            "config": {}
        }
    ]
}

参数说明:

参数说明
token游戏 Token,在管理台游戏详情中获取。
channel_pk渠道实例 ID,标识当前包归属的渠道实例。 接入开发期间填写对应开发渠道的ID

token、channel_pk 为示例值,请替换为您实际交付环境的参数。配置错误会导致 SDK 初始化或运行时配置请求失败。

3. 初始化 SDK

在游戏的 Application.onCreate() 中初始化 SDK。若使用自定义 Application,在合并后的 Manifest 核对 android:name。

import android.app.Application;
import android.util.Log;
import com.gravitydock.sdk.GravityDockSDK;
import com.gravitydock.sdk.GravityDockSDKListener;

public class GameApplication extends Application {

    private static final String TAG = "GravityDockDemo";

    @Override
    public void onCreate() {
        super.onCreate();
        // 开发联调阶段打开 SDK 日志,便于观察各模块调用与事件分发;正式版本可关闭
        GravityDockSDK.setLogEnabled(true);
        GravityDockSDK.initSDK(this, new GravityDockSDKListener() {
            @Override
            public void onInitSuccess() {
                Log.i(TAG, "SDK 初始化成功");
            }

            @Override
            public void onInitFail(String error) {
                Log.e(TAG, "SDK 初始化失败: " + error);
            }

            @Override
            public void onAppExit() {
                // 渠道触发退出时回调,在这里接入游戏自己的退出流程。
            }
        });
    }
}

4. 隐私协议

用户完成游戏内隐私授权后,在 Activity 上调用 GravityDockSDK.onUserAgree(activity),SDK 才会启动涉及设备标识的采集与渠道组件。

//单次冷起动必须且只能调用一次
GravityDockSDK.onUserAgree(activity);

5. 游戏生命周期与浮标

按目标渠道的审核要求接入以下接口,并在最终渠道包上验证。不支持的渠道会自动忽略对应调用:

方法说明
GravityDockSDK.appStart(activity)游戏页启动时调用,部分渠道需要上报启动行为。
GravityDockSDK.gameBegin(activity)进入对局/关卡等游戏开始节点时调用。
GravityDockSDK.gameEnd(activity)游戏结束节点时调用。
GravityDockSDK.showFloatWindow(activity)展示渠道悬浮窗(如防沉迷、用户中心入口)。
GravityDockSDK.hideFloatWindow(activity)隐藏渠道悬浮窗,如进入全屏播放、过场动画时。
GravityDockSDK.exitApp(activity)请求渠道退出流程,渠道确认后触发 onAppExit 回调。
// 典型接入示例
GravityDockSDK.appStart(mainActivity);      // 主界面启动
GravityDockSDK.showFloatWindow(mainActivity); // 进入主界面后展示浮标
GravityDockSDK.gameBegin(mainActivity);     // 开始对局
// ... 游戏进行中 ...
GravityDockSDK.gameEnd(mainActivity);       // 结束对局
GravityDockSDK.exitApp(mainActivity);       // 玩家点击退出按钮
// 渠道确认退出后,Application 中注册的 onAppExit 回调被触发

正式版本可调用 setLogEnabled(false) 关闭 SDK 日志。

6. 验证母包与渠道包

构建 Android 母包,在批量打包生成目标渠道 APK。安装产物并检查 SDK 初始化、首次隐私同意和渠道登录。若初始化或配置请求失败,核对渠道包对应的游戏、渠道实例、渠道组件和 server_url,同时检查设备能否访问该环境的数据面。

文档维护:Gravity Engine

文档修改日期:

本页内容