《接入必读》

游戏上线流程

在渠道上线一款游戏,基本包含以下流程:

商务洽谈 -》协议签署-》获取参数-》接入客户端-》接入服务端-》联调测试-》提包测试-》上线运营。

从“获取参数”到“联调测试”都是属于开发人员需要关心的渠道 SDK 接入流程。

渠道 SDK

在手游行业,当游戏开发商开发完游戏,准备在渠道市场上架游戏的时候,就会收到渠道提出的需求——需要接入他们提供的 SDK,也就是渠道 SDK。

所谓渠道 SDK 是指发行渠道提供的工具包,用来连接渠道和游戏开发商,提供基本的用户登录和支付的功能,以及渠道商定制的一些特殊功能。

手工接入的弊端

开发者手工接入 SDK 的过程中可能会遇到以下这些问题:

  1. 由于每一家渠道 SDK 的设计不同,SDK 里自带的资源文件,代码 jar 包,功能接口数量等都是完全不一样。
  2. 不能在同一份游戏代码中同时嵌入多家 SDK 的内容,因此开发者必须维护多套游戏代码项目来分别接入各家渠道 SDK。
  3. 服务端的开发者也需要去研究每家渠道设计的不同加密算法及数据校验方式,来开发订单数据校验和用户登录安全认证接口。
  4. 开发者须手动去写 jni 函数进行 java 层代码与 C++ 层代码的双向调用(其他语言同理),这就要求开发者对 java 语法和 jni 规则比较熟悉。

根据 AnySDK 收集的数据显示,一个有经验的开发者平均接入一款渠道 SDK 需要耗费的两到三天(客户端接入 + 服务端对接)。目前国内有大大小小上百家手游渠道,游戏每上架一个渠道,都要手工接入一次对应的渠道 SDK,同时还要考虑已接入渠道的 SDK 更新后重新接入问题,这里面的时间成本弊端就一目了然。

AnySDK 接入的好处

一次接入,批量出包!!

  1. 只要接入一次框架,后续的SDK接入和更新都可以在客户端工具填写参数就可以出包。
  2. AnySDK提供了各个语言版本的框架,开发者只需选择自己熟悉的开发语言即可。
  3. AnySDK接入大量SDK,对各种SDK接入问题都比较了解。

AnySDK 的原理

简单的来说,就是四个字——“统一接口”。

AnySDK 提供了五个不同语言游戏引擎版本的框架供开发者选择自己熟悉的语言版本来集成,不用关心 C++ / JS / Lua / C# 如何去调用 java 层的一个函数。在 AnySDK Framework 中,总共有六大类接口——分别是用户,支付,统计,分享,广告和推送。开发者只需要根据自己的需求来调用相应的函数,比如想要打出的渠道包能登录,能支付,并能显示广告。那么就只需要根据 AnySDK 的文档调用 login,payForProduct,showAds 等函数,传入相应的参数就可以,真正调用相应 SDK 函数的工作由 AnySDK 来完成。

同样的,服务端的开发者也不用关心某家渠道的文档规定了开发者需要以什么样的加密方式和校验算法来校验渠道服务器推送到游戏服务器的订单数据,开发者只需要根据 AnySDK 提供的文档来对接收到的数据做一次安全性校验就可以确认当前订单是来自哪个渠道,是否支付成功等。各渠道间不同的协议和规范由 AnySDK 去帮开发者完成统一。

母包和渠道包

当客户端开发人员按照第二步教程 “集成AnySDK Framework” 后,这时候运行项目所编译出的 APK 包称之为“母包”。顾名思义,这个 APK 包用于生成包含渠道 SDK 就可以生成的“渠道包”。“渠道包”就是用于提交给各渠道审核,审核通过之后分发给最终玩家的 APK 包。

简单来说,“母包”就是游戏代码 + AnySDK Framework;“渠道包”就是游戏代码 + AnySDK Framework + 渠道 SDK(包括代码 + 资源)。

如何生成渠道包

AnySDK 提供了一个功能强大的界面化打包工具,通过简单的四步就可以把“母包”生成“渠道包”。

  1. 首先,选择你要打包的APK所属的渠道(如百度游戏,360 等)。
  2. 其次,选择你希望在当前渠道的 APK 包中集成的 SDK(比如 百度游戏 渠道,根据渠道要求,你要在 APK 中集成百度游戏的用户和支付 SDK)。
  3. 然后,就是为你选择的的每一个 SDK 配置相应的开发者参数(开发者想要使用任何一个 SDK 都必须先去 SDK 提供方的网站去申请相应的开发者参数,这是非常重要的一步)。
  4. 选择是否需要添加渠道闪屏(根据渠道要求,目前所有要求添加闪屏的渠道 AnySDK 都已经提供了闪屏选项,并可以根据渠道的规定来修改游戏 icon,添加相应的渠道角标)。
  5. 最后,点击打包按钮,等待 2 - 5 分钟之后打包工具就会生成渠道包,开发者可以直接点击”安装”按钮将渠道包直接安装在手机上来测试生成的渠道包工作是否正常。

如果打出的渠道包在测试过程中发现了某些接口运行结果异常,则需要开发者修改母包中的代码,修复 bug 之后再重复上面编译打包的过程来生成渠道包,进行再次提交测试。

怎么使用 AnySDK

快点我开启下一关