TYPESDK手游聚合SDK客户端设计思路与架构之二美高梅4688.com:安卓平台统一化接口结构及思路

在上一篇《TypeSDK聚合sdk设计中央标准》中大家提到了,设计聚合sdk要求统筹开发平台部分的接口,以及规划发表平台的汇集这二个大模块。那么我们今日就先来讲讲公布平台之一:安卓平台的统一化接口结构和笔触。

  在前一篇文中,咱们对1个聚合SDK服务端所须要实现的职能作了简便的辨析。通过七个重大场景的功能流程图,我们能够看到,作为多款游戏要适配多少个渠道的联合请求转载核心,TYPESDK服务端首要必要贯彻的效果有以下几当中央:

壹 、相关的供给

l  接收请求和再次回到响应,平日是HTTP的伸手响应。

       安卓平台的统一化接口,我们需求考虑到现实以下的几点:

l  获取配置音讯。

       1.对外部须要要有统一的接口,有限帮助分歧的水渠sdk
对同四个娱乐来说,是调用相同的接口,传递相同的参数

n  识别游戏,根据请求中的音讯,获取到现实游戏的相干安插。

       2.对内必要有一套扩大性很好的框架,能够回复各异渠道的sdk差距性

n  识别渠道,依照请求中的消息,获取针对现实渠道的布局。

② 、设计的模块

n  依照请求中的消息,获取特定游戏在沟渠上的参数

      
那么针对那些考虑点,安卓平台的统一化接口,大家将根本分为以下多少个部分来设计:

l  处理请求逻辑,根据请求类别不一(登录,支付),处理流程不一致。

       1.基础架构划设想计

 

       2.切实渠道实现类

为了灵活方便地对两样渠道的通讯逻辑做出安插和对应。我们须求将一定的水道逻辑和配置作一个粗略的悬空,以接口-达成的方法将渠道逻辑封装成为独立模块。以下能够做出二个简练的劳动端流程图。

       3.统一化对外平台接口

 

       4.跨平台相互的规划

 美高梅4688.com 1

③ 、具体的细节

图1

       1.统一化的基础架构
美高梅4688.com 2

 

       针对统一化的基础架构,我们根本设计了以下的三个重点框架

那样一来,大家能够将全体TYPESDK服务端的架构拆分为以下重点模块/类:

大家根本实现了那样一套结构

l  HTTP处理框架

1.我们创造通用的根基抽象类(BaseActivity)。

n  处理HTTP协议,接收请求,重回响应。

      
该类中,包含了装有sdk都有,可是落到实处分歧的接口,那一个接口作为抽象函数,要求每种渠道的现实贯彻类都去贯彻。

l  配置处理工科具类

       1.1 开头化接口:void init()

n  从持久化地点读取配置至内存备用

       1.2 登录接口: void login()

l  逻辑模块管理器

       1.3 登出接口:void logout()
       1.4 支付接口:string pay(string _json_string)

n  统一保管和加载各渠道的逻辑模块

       1.5 提交玩家数据:void updatePlayerInfo( string _json_string)

l  各渠道逻辑模块

       1.6突显用户中央: void showPlayerCenter()

l  主逻辑流程序控制制器

       1.7 大退游戏(杀进度):void exit game();

 

       1.8 显示分享 void showShare(string _json_string)

而其中牵涉到的实体类大概有如下:

       还供给通用的用空想来安慰自己接口,用作sdk框架的拓展

l  渠道配置类

       1.9 依照函数名,调用具体实现类中的函数:

l  游戏配置类

       string DoAnyFunction(string _function_name,string
_json_string)

l  用户音讯类

       大家还包涵了通用固定达成的接口,用作sdk框架的填补

l  订单音信类

       1.10.收获当地渠道的布署:string getPlatfromInfo()

l  别的中等封装类(请求req,再次来到resp等等),不再赘述

       1.11.获取缓存在安卓层的用户新闻:string getUserInfo()

美高梅4688.com, 

2.大家根据每三个水渠的sdk不相同,单独创设每种渠道自个儿的完成类Bonjour_xx。

依据以上分析,聚合SDK服务端的欧洲经济共同体设计就做到了,无论选择何种语言技巧,都能够达成出多个简便的服务端。可是,那几个服务端在现实的逻辑上还设有逻辑缺点和失误,在实际上接纳中还不可能满意大家的选取须求。以下的篇章里,我们会不难列举若干事实上接入中相见标题以及规划上的解决方案。

       2.1 那么些类继承通用的框架基类(BaseActivity)。

以此连串已开源,我们有趣味能够自身切磋也许参照项目编写制定自身的聚合SDK

       2.2
在该框架下,达成基类全数的空洞接口。假设没有该接口的作用,也急需做出相应的处理,例如输出log日志。

类型地址:https://code.csdn.net/typesdk_code

       2.3 同时此类能够追加渠道自有的出格接口(例如获取好友列表)

类型地址:https://github.com/typesdk

3.公告平台有1个联结的给外部调用接口完成的类:mainActivity

      
3.1.mainActivity给unity调用时,供给继承UnityPlayerActivity。在给cocos2dx调用时,供给持续Cocos2dxActivity。大家的主要目标是给游戏的支出平台调用,正是说,游戏支付平台是哪些,那我们就要求写这么八个给其调用的mainActivity。

       3.2
mainActivity中供给统一化对外的接口名字,并且在各样接口中,使用
bonjour_xx的实例对象,来促成具体接口的政工逻辑

       3.2 mainActivity中供给能够让开发平台(unity/cocos2dx)必要采用bonjour_xx来调用基类的通用拓展的函数

4.跨平台互相部分

       跨平台互相大家须求考虑多个地方

              a.如何将从揭露平台调用开发平台函数

              b.如何将从开发平台调用发布平台函数

      
1.在安卓层,大家只要求将供给给到unity调用的函数,写在在此以前提到过的mainactivty中,在unity中,可以直接通过函数名来调用mainactivity的函数

       2.在unity层,提供了大家通用的跨平台调用接口

       void UnitySendMessage(string beheaver_name, string
function_name, string json_string );

      
大家只必要精通unity部分用来接过新闻的脚本名字,需求实践的脚本函数名,以及传递的参数,就足以调用unity的响应函数了。

       综上安卓向unity平台传递数据和调用函数,首要透过音讯机制发送新闻

      
unity向安卓平台传递参数和调用函数,则经过函数名,用反射来调用mainActivity里的接口。

      
以上便是大家安卓发表平台的聚合sdk设计思路细节,下一章大家将讲述ios聚合sdk的筹划思路细节。

本条类型已开源,大家有趣味能够协调查商量究可能参照项目编写制定本身的聚合SDK
花色地址:https://code.csdn.net/typesdk_code
品类地址:https://github.com/typesdk

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注