TYPESDK手游聚合SDK客户端设计思路与架构之六:SDK配置文件设计思路
TYPESDK⼿游聚合SDK客户端设计思路与架构之六:SDK配置
⽂件设计思路
  作为⼀个聚合sdk的客户端,势必针对每⼀个不同渠道sdk有⼀套⾃⼰的配置⽂件。同时,作为聚合sdk客户端本⾝也会有相关的功能配置需求。加上部分的游戏开服和登录等等在线应急功能的需求,也最好是需要有⼀套配置⽂件。同时这些配置⽂件有些需要放在本地,有些则需要放在资源服上读取,有些则要放在聚合sdk服务器上读取。
抗击疫情的作文零零总总的说了这么多,那么让我们来理⼀下思路,看看到底要有那些配置⽂件。
  从功能分类来说
    1. 针对单个渠道sdk的相关配置
    2. 针对聚合sdk额外功能的相关配置
  从读取难易来说
营转非车辆报废年限
    1. 放在本地的配置(读取速度快且必定成功,但是有被修改风险,很难做更新)
    2. 放在服务器的配置(读取成功存在失败因素,⼏乎没有被修改风险,很容易做更新)
    3. 写在代码⾥⽂件的配置(读取速度快,被修改难度⼤,但是很难做更新)
鉴于上述的这些分析,那么我们做了以下的这些规划
  1. 存放本地的配置的⽂件:localConfig
其中包含了以下⼏点内容:
    a. 单个渠道sdk的⾮关键性配置:例如appid,渠道编号,等
    b. 单个游戏包的sdk额外功能;是否加载⼴告检测,是否使⽤热更新等
  2. 存放在服务器的配置⽂件:serverConfig
其中包含了以下⼏点内容
    a. 渠道的回调地址,appkey等关键性参数
教师见习期工作总结    b. 游戏登录的⽩名单列表等
婚纱摄影推广    c. 游戏log的是否开启
    d. 游戏的sdk辅助功能是否开启使⽤的开关等
描写山峰的词语
  3. 写在代码⽂件⾥的配置:codeConfig
其中包含了以下⼏点内容
    a. 从服务器读取⽂件的下载地址列表,需要有多个下载地址
    b. 解析本地配置⽂件的相关算法(本地配置⽂件可能加密)
    c. 其他和sdk聚合服通信的地址和接⼝。
接下来我们来说说,这三类配置⽂件分别在什么时候读取和使⽤。
存放本地的配置的⽂件
  这种建议直接在游戏启动时读取,因为从本地⽂件转换成内存中的数据,仍然是需要⼀个输⼊/输出流的操作,存在异常的捕获和处理。
本地配置⽂件应该在sdk功能正式启⽤前就被加载,换⾔之,在sdk的初始化之前,需要将本地配置⽂件读取出来并且存到内存中。在接下来的sdk初始化过程中,将会⽤到本地配置⽂件的appid这些渠道sdk配置参数。
素描入门基础画步骤存放在服务器的配置⽂件
这些数据建议先在每个具体的逻辑接⼝调⽤前读取⼀次。这些配置⽂件中的数据,有以下这些的相关设计
  a. 这些数据本⾝需要有⼀个默认值,防⽌在⽹络不好的情况下⽆数据可⽤,造成逻辑上的卡死。
  b. 这些数据每次使⽤的时候,都需要刷新重新读取⼀遍,因为这些数据存在的最⼤⽤处就是动态的后台更新相关配置
  c. 这些数据每次读取到以后,都需要缓存进内存中。如果下次从服务器没有读到相关配置,则使⽤缓存在内存中的数据
  d. 这些数据需要在获取到/超时后再调⽤后⾯的逻辑,不要做异步的接⼝调⽤。
写在代码⽂件⾥的配置:codeConfig
这些配置⽂件因为是写在代码中的,所以不需要缓存进内存中,它们本⾝应该是静态常量,可以每次需要使⽤的时候,直接读取就⾏。
接下来特地说下有关代码⾥的配置:coneConfig
因为移动设备本⾝固有问题,之前做项⽬的时候,有遇到过ip地址解析不了的情况,所以在读取相关的服务器配置地址时候,我们做了以下的相关设置
  a. 配置⽂件最好有域名的配置。
  b. 同⼀个接⼝,有多套的备选地址,以防有⼀台服务器⽆法访问到,⽽造成逻辑上的中断
  c. 本⾝要有相关的超时机制,当第⼀个ip访问不到时,才开始访问第⼆个,并且所有接⼝应该都遵循这套逻辑
有关配置⽂件的数据格式,这⾥我们提及⼀些项⽬中遇到的实际情况
我们当初使⽤的数据格式是json,⽽在http协议中,”:\”这两个符号是不能使⽤的,必须进⾏URLEncode,在服务端和客户端通信中,这个⼩问题常常被忽视。
有关配置⽂件的⼀些设计思路,我们就先暂时讲到这⾥。同时也欢迎⼴⼤看客typesdk的技术,提出宝贵的意见和建议。
这个项⽬已开源,⼤家有兴趣可以⾃⼰研究或者参照项⽬编写⾃⼰的聚合SDK 项⽬地址:
项⽬地址:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。