手游SDK知识详析

一、SDK概念

     SDK ,即 ,的意思,通俗点说,就是辅助开发某一类软件的相关文档、范例和工具的集合,不过我们平时所说到的Sdk其实会更加简单一些,就是一个封装了各种功能模块的依赖库与对接文档罢了,比如,我们按照对接文档接入腾讯语音SDK,那么我们软件就具备了实时语音功能。

二、手游SDK涉及对象

:也称(Content Provider, 即内容提供商),即开发游戏的公司/主体
:也就是跟有流量的渠道的一种游戏推广方式,既然是联运的话,基本就是收入分成,比如:玩家充了钱,研发占5成,渠道占5成,以前说到发行基本都是上渠道:
     :Oppo、Vivo、华为、魅族、金立、酷派、联想
     :应用宝、小米、360、UC(阿里游戏)、百度
不过此一时,彼一时,现在7大硬核渠道很多已经没落,比如:金立、酷派那些几乎都快倒闭了,反而其他手游渠道逐渐崛起,比如:九游、TapTap都是用户流量比较大的渠道,要是游戏品质比较好,同时渠道关系维持得比较好或者舍得花钱,你的游戏还可以出现在他们渠道主页推荐位上,那么曝光率就会大大提高,下载你游戏的用户自然也会更多,同时发行还有个叫的
     的定义:中小自有量渠道,主要是一些中小型规模的细分渠道,例如:今日头条、当乐、果盘、海马等,它们未必全部和游戏有关,但却在导流方面有着不俗的表现。相对于为数不多的几个主流大渠道来说,“长尾渠道”规模庞大,几千个渠道商占据着约40%的市场份额,实力绝对不容小觑。

:也就是在广告媒体上投放广告买量,常见的广告媒体有:头条系产品(抖音、今日头条、西瓜视频等)、快手、广点通、百度、UC等,这种方式基本都是按照(当然也是有按分成的),比如:
     :按玩家下载安装或者注册数来计费,比如:约定有1个玩家下载安装或者注册,那么就给广告媒体10元;
     :这种方式跟发行联运有点类似,也是玩家在游戏内充钱了,两者再进行分成,若是玩家仅仅是下载安装而不付费的话,广告媒体是没有收入的;
     :这种方式一般是按游戏广告展示1000次计费,也就是说只要玩家看到这条广告,就算一次展示,比如:约定展示1000次,需要给广告媒体支付20元;当然有些广告媒体还会统计玩家看广告的时长来灵活计费;
     :按玩家点击广告数计费,也就是只有玩家看到同时点击了这条广告,才需要给广告媒体付费,要是没点击是不需要给钱给广告媒体的

三、手游SDK诞生缘由

     因为跟合作时候涉及到分成的问题,那么玩家在游戏内充值了多少钱,双方都是需要有明确的流水记录才方便对账。假如支付功能都是自己提供,玩家支付完再通知,正常来说也是没问题,但是要是为了分少一些收入给,可以选择通知少一些支付数据给,也是没法发现的,所以支付功能需要由提供,然后游戏接入提供的支付功能,那么为了方便游戏快速接入的支付功能,需要开发属于自己的SDK,这个SDK对外提供一个支付接口给游戏快速调起支付界面,然后玩家支付成功之后,再通知游戏给玩家发币,整个支付流程下来,跟都是有玩家充值的流水记录,谁都做不了假,因为要是这边收到玩家的钱却不去通知游戏那边的话,玩家的游戏角色是收不到游戏币的

四、手游SDK包含的功能模块

2、支付模块

     支付模块一般包括:、,有些还会有、等,游戏调用SDK支付接口时序图如下:

4、用户中心模块

     (即悬浮窗部分内容)不是必须的模块,不过为了更好地服务玩家,是SDK完善与优化的重点模块

CP接入时候只需要复制demo的代码,修改一下即可

B设计接口函数时候,将接口参数封装成了对象,同时在对对象的字段进行赋值时候,支持链式调用,简洁明了

2、接口设计时候尽量考虑周到,不要随意变动,即要符合开闭原则,对修改封闭,对扩展开放
     假如某天有个新需求需要在角色上 接口增多一个参数,那么还是以上面案例为例

  • A设计的接口要么在原来接口的基础上增加一个参数,要么增加一个新接口,若是在原来接口基础上增加新的参数,那么以前旧游戏都得重新对接这个接口,要不就会 错;若是新增一个接口函数倒是可以做到兼容旧的游戏,但是显然后面要是不断有新的加参数需求,那么接口函数的数量会不断增加
  • B设计的接口只需要在RoleParam中增加一个字段即可,对于旧游戏不给这个新增的字段赋值也是可以正常运行的,新对接的游戏就约定给新字段赋值即可

3、SDK对接文档尽可能写得通俗明了,参数的含义清楚标注,每个接口有清晰的示范案例
4、所需对接的接口设计得尽可能少,减轻CP对接成本
     比如:Android SDK一般是需要知道各个activity的生命周期变化的, 但是游戏所在Activity不是SDK自身的Activity,所以有些人在设计接口时候,就会设计一堆的生命周期相关的接口函数给游戏去调用,其实对Android有深入了解的人,是不会这样设计的,因为一来设计的接口太多,没法确保游戏研发不会漏掉,二来增加了研发的工作量,研发对接SDK的周期会更长,要想实现监听各个activity声明周期的变化可以在application中注册一下Activity生命周期回调即可

5、少依赖第三方库
      比如: 络请求、数据库操作之类,能自己实现的尽量自己实现,要是什么功能都是依赖第三方库,一来SDK的体积会变得很大,二来要是游戏也有依赖相同的第三方库但是所用的版本不相同时候,就容易出现依赖冲突
6、资源命名加公司前缀
     比如:Android SDK项目的对接,一般是提供或者给游戏接入,因为最终游戏的android资源跟SDK的资源是合并在一块的,所以假如SDK有个布局资源名为:login.layout, 刚好游戏android资源中也有一个同名的话,那么游戏打包时候就会 错,所以最好的做法就是资源命名的时候加公司前缀,比如:com_facebook_login.layout,这样就可以避免资源冲突问题

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年8月19日
下一篇 2021年8月19日

相关推荐