You need to enable JavaScript to run this app.
导航

导入和初始化 SDK(Android)

最近更新时间2024.02.20 10:53:40

首次发布时间2023.04.28 09:58:12

本文档介绍如何在您的游戏 App 中导入和初始化 GNA Android SDK。

前提条件

您已经下载了 GNA Android SDK

声明应用权限

您需要在 Android 项目的 AndroidManifest.xml 文件中声明以下权限:

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>

在 Android 项目中导入 SDK

把下载的 .aar 文件复制到项目中的 src/main/libs 目录,然后在项目的 build.gradle(Module:<project_name>.app) 文件中添加以下依赖。

implementation(files("libs/ttnet-gamesdk-2.1.1.0.china-tob.aar"))

初始化 SDK

导入 SDK 后,参见以下步骤初始化 SDK。您可以参见 SDK 参考 了解 SDK 的详细信息。

  1. 定义一个类,例如 MyGameSdkAdapter,实现 GameSdkAbsAdapter 接口。在接口中设置 App ID、SDK 鉴权值和 Device ID 等信息。

    警告

    示例代码了方便功能演示,直接传入了 App ID 和 SDK 鉴权值。在生产环境中,不建议您直接传入明文。例如,您可以预先把明文进行编码或加密处理,在传值的时候再对已编码或加密的明文进行解码或解密。同时,您必须对 App 进行代码混淆处理。否则,您的 App ID 和 SDK 鉴权值可能会被第三方通过反编译的方式获得。

    说明

    • 您需要自行管理和分配设备的 Device ID。建议您复用 App 中已有的用于标识用户设备的 ID。
    • 关于 App ID 和 SDK 鉴权值的获取方法,参见 获取 App ID 和 SDK 鉴权值
    import org.chromium.gsdk.engine.GameSdkAbsAdapter;
    
    public class MyGameSdkAdapter extends GameSdkAbsAdapter {
    
        public MyGameSdkAdapter(Context context) {
            super(context);
        }
    
        // 标识某一台设备的唯一 ID。支持 UTF-8 字符,长度不限。您需要自行设置和管理 Device ID
        @Override
        public String getDeviceId() {
            return "1234567689";
        }
    
        // App ID。标识您的 App 的唯一 ID。您需要从 GNA 控制台获取 App ID
        @Override
        public String getAppId() {
            return "10xxxx94";
        }
    
        // SDK 鉴权值。您需要从 GNA 控制台获取 SDK 鉴权值
        @Override
        public String getSecret() {
            return "tzt3xxxxxxxxxxejs7hhx";
        }
    }
    
  2. 调用 tryInitGameSdk 方法初始化 SDK。

    说明

    tryInitGameSdk 方法是异步的。GNA SDK 暂时没有为该方法提供回调。因此,我们建议您尽早调用该方法。例如,您可以在 App 冷启动时调用该方法初始化 SDK。

    import org.chromium.gsdk.engine.GameSdkClient;
    
    public class MainActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            // 初始化 GNA SDK
            GameSdkClient.tryInitGameSdk(new MyGameSdkAdapter(getApplicationContext()));
        }
        
    }
    

接下来您可以

实现网络分析或网络加速