# 一、接入准备

这一步骤主要介绍快速将SDK资源集成到游戏工程,以编译打包正常为完成标志。

下一步将介绍具体业务功能的集成。

# 1.1 环境准备

  1. 下载 UltraSdk资源
  2. 接入准备:
    • 安卓开发环境:
      • JDK 1.8 或以上版本
      • Android Studio 3.0.0或以上版本
      • gradle 2.3.3或以上版本
    • 游戏工程:
      • 可编译运行的 Android游戏工程
        • Android Studio 风格
        • 使用 gradle 编译
    • 调试运行:
      • Android设备,要求:系统4.4及以上版本、可以正常联网;
    • 配置参数:
      • 请先在 开发者中台 创建 游戏,并获取接入须要的各项参数
        • ProductID: 应用ID,必须,代表当前游戏在SDK系统中的唯一ID;
        • ProductKey: 应用KEY,必须,用于常规业务接口的签名;
        • 支付相关 (需要使用支付功能时配置)
          • 内购商品(即 道具):有多条记录,需要根据接入渠道配置;
          • 支付回调地址:游戏服务的http回调地址,需要能被外网访问,可以参考UltraSdk的服务端SDK及示例;
          • 支付回调KEY:用于支付回调流程中验证签名;

# 1.2 时序图

uml diagram

# 二、集成开始

# 2.1 获取SDK

  1. 在文档中心下载资源包,解压后将得到如图文件夹:

    以下是资源目录结构说明:

    • /
      • UltraSdk/ 必须接入,根据Project情况选择相应的版本
        • android版本 默认接入此版本即可
        • androidx版本 如游戏需要接入Google、Facebook、Appsflyer、Firebase等三方库,请接入此版本

    以下是资源文件说明:

    • /
      • assets/
        • ultrasdkcfg.xml 参数配置文件,接入时这里需要CP修改
      • libs/ 核心依赖库
        • UltraSDK.aar
      • readme.txt

# 2.2 资源导入

将对应的SDK资源拷贝至游戏Android工程对应的目录下

# 2.3 添加SDK的库依赖

  1. 编辑游戏(Android)工程的app层级下的build.gradle

    android版本,在dependencies节点下对 /libs 下的jar包或aar进行依赖,如:

    dependencies {
        implementation fileTree(include: ['*.jar', '*.aar'], dir: 'libs')
        //sdk需要依赖以下android库,请务必导入,如果版本号与您本地有差异,请设置成大于或等于sdk所需库版本
        implementation 'com.android.support:support-v4:28.0.0'
        implementation 'com.android.support:multidex:1.0.3'
    }
    
    1
    2
    3
    4
    5
    6

    androidx版本,在dependencies节点下的aar进行依赖,如:

    dependencies {
        implementation fileTree(include: ['*.jar', '*.aar'], dir: 'libs')
        //sdk需要依赖以下android库,请务必导入,如果版本号与您本地有差异,请设置成大于或等于sdk所需库版本
        implementation('androidx.legacy:legacy-support-v4:1.0.0')
        implementation('androidx.multidex:multidex:2.0.1')
        
    }
    
    1
    2
    3
    4
    5
    6
    7

    在android节点下添加本地仓库,如:

    android {
        compileSdkVersion 30
        buildToolsVersion "30.0.3"
        ...
        
        compileOptions {
            sourceCompatibility JavaVersion.VERSION_1_8
            targetCompatibility JavaVersion.VERSION_1_8
        }
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
  2. android版本为例,各个资源以及配置导入位置如下图所示:

  3. Android Studio菜单中选择刷新工程,如图:

# 2.4 配置ultrasdkcfg.xml

assets/ultrasdkcfg.xml 配置:

  • 参数说明

    字段 类型 重要 说明
    _hu_pid_ String 必须 游戏的productID(必传,UltraSdk需要)
    _hu_pk_ String 必须 游戏的productKey(必传,UltraSdk需要)

    参数获取方法:UltraSdk管理后台-游戏管理-游戏首页

  • 示例如下

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <!--UltraSdk的必传参数,productID,接入时请将其替换为游戏对应的值-->
        <string name="_hu_pid_">12345678</string>
        <!--UltraSdk的必传参数,productKey,接入时请将其替换为游戏对应的值-->
        <string name="_hu_pk_">12345678</string>
    </resources>
    
    1
    2
    3
    4
    5
    6
    7

# 2.5 配置AndroidManifest.xml

编辑游戏工程主目录的 AndroidManifest.xml

  1. 第一步:如果有 android:installLocation 属性,需要将值置为auto,否则可能出现游戏无法安装的问题,示例:

    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        ...
        android:installLocation="auto" >
        ...
    </manifest>
    
    1
    2
    3
    4
    5
  2. 第二步:所有自定义的 Activity 需要配置 android:configChanges,示例:

    <activity
        android:name="***.******.*********"
        ... 
        android:configChanges="keyboardHidden|orientation|screenSize" >
        ...
    </activity>
    
    1
    2
    3
    4
    5
    6

    说明:为防止自定义的 Activity 发生横竖屏无法正常切换的问题。

  3. 第三步:Unity3D游戏,需要在主界面 Acitivity 中添加如下设置:

    <meta-data android:name="unityplayer.ForwardNativeEventsToDalvik" android:value="true" />
    
    1

    说明:为了使页面中的 Android 控件具有点击事件。

# 2.6 配置build.gradle

编辑游戏工程主目录的 build.gradle

  1. 设置 android:targetSdkVersion
    • 根据国内主流渠道的要求,建议设置为 26(Android 8.0 Oreo),国内发行最高不超过28
    • 海外发行,根据谷歌要求设置到最新版本即可。

# 2.7 Android Studio 混淆配置

游戏混淆发布前,务必添加以下字段到混淆文件 proguard-rules.pro

    -keep class com.ultrasdk.** { *; }
1

# 2.8 运行验证

在完成上述操作后,请编译运行,测试有无库冲突问题。


恭喜你完成SDK集成,让我们开始《第二步:开始接入》吧~

本文档对解决你的问题有所帮助?