Android SDK 集成
在 Android Application 中引入并初始化 GravityDock SDK,配置 GravityDock.config,接通隐私同意、生命周期与浮标流程。
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
文档修改日期: