Android SDK聚合原理讲解(参考U8)

2023-05-16

想要实现一套聚合sdk框架,我们来思考一下,我们接入一个sdk,需要实现哪些东西。

1、首先,客户端需要接入多款SDK,为了能够多款游戏重用,我们不可以在游戏里面直接去接入每个SDK,而是需要将游戏和SDK接入分离。

2、上面既然说了SDK接入和游戏分离,那么我们就需要抽象出一个SDK接入框架,游戏只需要接入这个框架即可,然后每个渠道SDK来实现这个框架。

3、我们需要实现一个打包工具,不可能100个渠道包,手动一个一个去点击打包,那是会死人的。

4、服务器端,同样得,为了支持多款游戏,我们需要一个统一的用户登录认证中心,和一个统一的支付中心。

所以,我们这套东西,应该有以下几个部分:

1、统一SDK接入框架

2、各个SDK接入实现

3、一键打包工具

4、统一的登陆认证中心和支付中心

那么,我们现在要加入我们统一的登陆认证中心,而且,我们这个框架,本身就是针对多款游戏的,所以,我们不可以让游戏服务器直接和每个渠道的SDK 服务器进行交互,所以我们增加一个统一登陆认证服务器,姑且叫LTServer。那么,我们就设计一下LTSdk的登陆认证流程:

 

1、客户端接入抽象SDK框架,根据当前具体是哪个SDK渠道,调用登陆界面,然后传入用户名和密码,进行SDK登陆操作

2、SDK登陆成功,会返回sid等信息

3、SDK抽象层客户端拿着这个sid以及接入之前向LT server申请的appid,渠道号等信息,Http访问LT server进行登陆认证。

4、LT server 根据当前传递的appid,渠道号,去对应的SDK服务器进行认证

5、SDK服务器认证成功,会返回SDK服务器那边的用户信息

6、LT Server拿到用户信息,生成一个LT server统一的用户信息并存储。然后,紧接着返回给客户端一个有效的token。

7、游戏客户端就可以通过sdk抽象层获取token,客户端拿着这个token,去访问游戏服务器(多数是游戏登陆服务器)

8、游戏服务器,拿着这个token去LTserver 进行登陆认证。

9、LT server 判定token有效,则返回给游戏服务器当前用户的用户信息

10、游戏服务器拿到用户信息,证明当前登陆成功,返回给客户端服务器列表等数据,登陆成功。

那么,我们现在要加入我们统一的支付中心,同样针对多款游戏的,所以,我们不可以让游戏服务器直接和每个渠道的SDK 服务器进行交互,我们也增加一个统一支付服务器,我们把支付中心的功能也加到LTServer里。我们再看下新的支付流程:

 

1、游戏客户端,首先请求游戏服务器要充值

2、游戏服务器会将用户信息和充值金额登信息发送给游戏客户端

 3、游戏客户端讲充值需要的信息发送给sdk抽象层

4、sdk抽象层拿着这些数据发送给LTServer,创建订单使用

5、LT Server将调起渠道支付需要的信息发送给sdk抽象层

6、SDK抽象层拿着这些信息调起渠道支付

7、渠道SDK支付成功,立马返回一个状态

8、同时,渠道SDK服务器会异步通知游戏开发商设置的支付回调地址。注意,游戏接入的时候,这个回调地址要设置到LTserver提供的一个地址。

9、LT server收到充值回调,根据验证结果等判定,立马给渠道SDK服务器返回一个成功或者失败的状态。

10、然后LT server根据自定义参数中的orderID,查询到对应的订单信息,再根据订单信息,获取到当前用户信息和对应的游戏信息,然后调用接入游戏之前,游戏服务器提供给LT server的支付回调地址。这个回调地址,游戏服务器只需要提供一个给LTserver就可以了。因为游戏服务器只和LT server交互。

11、游戏服务器收到回调,验证成功与否,里面返回给LT server一个成功或者失败的信息。同时,给对应的玩家加游戏币。

所以,通过对整个框架需要实现的功能的分析,我们设计了一套可以实现统一SDK登陆认证和支付中心的架构。那么接下来,我们就会具体的来实现每一个部分。包括抽象的SDK接入框架,游戏客户端怎么接入这个抽象的SDK接入框架,各个渠道SDK怎么整合到这个SDK框架中来,怎么实现一键打包工具,怎么实现这个统一的登陆认证中心和支付中心。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android SDK聚合原理讲解(参考U8) 的相关文章

随机推荐

  • 软件版本中的release,stable,alpha,beta,pre,snapshot

    转自 xff1a https www jianshu com p aefe0453d081 我们在下载软件会遇到诸如release stable alpha beta pre current eval rc snapshot等版本 xff0
  • kylin ubuntu20.04使用记录

    1 配置dns vim etc systemd resolved conf 修改 DNS 61 119 29 29 29 223 5 5 5 多个DNS地址使用空格分隔 2 配置samba sudo vim etc samba smb co
  • linux进程、线程状态 tomcat线程数 并发数查看

    1 linux进程查看 ps aux top USER PID CPU MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0 0 0 0 10368 116 Ss Jan16 4 57 init
  • 字符编码(三) 字节序、bit序、 有效位

    1 字节序 xff1a 一个 xff08 占多字节的 xff09 数据单元的字节顺序 Java中byte没有字节序问题 xff0c 其他都有字节序问题 不必考虑byte内部bit的细节 bit序 xff1a 一个字节内 xff0c bit的
  • STM32:串口发送

    1 main c代码如下 include stm32f10x h nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp Device header include Delay h include OLED
  • 太阳晒进屋里 太刺眼懒得起来关窗帘?做一个光感遥控吧

    在一个智能音响的交流群里 xff0c 有位群友提出了个想法 xff0c 家里太阳晒进屋里每次都要起来拉窗帘 xff0c 有没有什么办法可以让太阳晒进屋就关窗帘 xff0c 没太阳了又打开窗帘能 xff1f 后来这位群友找到我 xff0c 我
  • 用Python爬虫获取NBA球员的生涯数据

    NBA球迷往往对球员的各项数据以及对应的排名很感兴趣 xff0c 而basketball reference com这个网站的数据十分详尽 为方便浏览 xff0c 我在github建了一个项目 xff0c 借助该网站提供的数据来汇总某个球员
  • FreeRTOS 二值信号量

    参考 开发手册 二值信号量 简介 二值信号量通常用于互斥访问或同步 xff0c 二至信号量没有优先级继承 xff0c 更适合用于同步 xff08 任务与任务或任务与中断的同步 xff09 二值信号量其实就是一个只有一个队列项的队列 xff0
  • QGC地面站二次开发 环境搭建过程

    文章目录 将本机文件复制到安装的虚拟机系统中方法一方法二 ubuntu QT 安装过程问题一 xff1a 安装开始的时候 xff0c 显示磁盘容量不足 问题二 xff1a 现需解决 磁盘已成功扩展 您必须从客户机操作系统内部对磁盘重新进行分
  • c++应该怎样学习?c++服务器开发必备知识

    笔者从事软件开发工作5年 针对c 的特性 用途 整理的进阶式学习笔记 从浅入深地总结重点知识 本文旨在为c c 初学者 初中级开发者和意在转型c 服务器研发的同学们 对基础知识和进阶路线进行详细的整理 适合c 初学者 c 中高级开发岗的同学
  • Hadoop 安装与 HDFS 基础实践

    一 环境 xff08 1 xff09 操作系统 xff1a Linux Ubuntu 20 04 xff08 2 xff09 Hadoop 版本 xff1a 3 3 2 xff08 3 xff09 JDK 版本 xff1a 1 8 或者以上
  • select版的TCP通信

    编写代码之前 xff0c 大概先说一下利用select编写tcp的思路及select特点 select系统调用是用来让程序监视多个文件句柄的状态变化的 xff0c 程序会停在select这里等待 xff0c 直到被监视的句柄有一个或者多个发
  • ubuntu20.04上编译android 7.1

    一 安装 OpenJDK 8 sudo apt get install openjdk 8 jdk 提示 xff1a 安装 openjdk 8 jdk xff0c 会更改 JDK 的默认链接 xff0c 这时可用 xff1a sudo up
  • GIT介绍

    1 概述 对于软件版本管理工具 xff0c 酷讯决定摒弃CVS而转向Git了 为什么要选择Git xff1f 你真正学会使用Git时 xff0c 你就会觉得这个问题的回答是非常自然的 然而当真正需要用文字来回答时 xff0c 却觉得文字好像
  • 软件设计师-知识产权和标准化知识

    1 1 1 1 标准化的基本知识 什么是标准 xff1f 为在一定的范围内获得最佳秩序 xff0c 对活动或其结果规定共同的和重复使用的规则 导则 或特性的文件 xff0c 称为标准 该文件经协商一致制定并经一个公认机构的批准 标准应以科学
  • MAPREDUCE详解

    1 MAPREDUCE原理篇 xff08 1 xff09 Mapreduce是一个分布式运算程序的编程框架 xff0c 是用户开发 基于hadoop的数据分析应用 的核心框架 xff1b Mapreduce核心功能是将用户编写的业务逻辑代码
  • VNC如何连接远程服务器

    所有VPS均同时支持MSTSC VNC和手机远程控制 xff0c 本篇为VNC Viewer连接教程 1 运行已安装好的VNC Viewer xff0c 输入连接地址 xff08 如果没特别指定 xff0c 那么连接地址一般是VPS地址的端
  • 为什么硬盘只能最多有四个主分区

    主分区 xff0c 也称为主磁盘分区 xff0c 和扩展分区 逻辑分区一样 xff0c 是一种分区类型 主分区中不能再划分其他类型的分区 xff0c 因此每个主分区都相当于一个逻辑磁盘 xff08 在这一点上主分区和逻辑分区很相似 xff0
  • 查看ubuntu版本号

    转自 xff1a http www cnblogs com zero1665 archive 2010 05 24 1742962 html 方法一 xff1a cat etc issue 返回结果 xff1a Ubuntu 6 06 2
  • Android SDK聚合原理讲解(参考U8)

    想要实现一套聚合sdk框架 xff0c 我们来思考一下 xff0c 我们接入一个sdk xff0c 需要实现哪些东西 1 首先 xff0c 客户端需要接入多款SDK xff0c 为了能够多款游戏重用 xff0c 我们不可以在游戏里面直接去接