U8SDK——手游海外联运SDK上线了
经过一段时间的开发和测试, 一套针对手游海外联运的SDK终于开发完成了。
一、开发准则
之前我们有说过, SDK开发和普通的app开发其实有很大的不同。 这次开发海外SDK,我们根据从事SDK开发多年的经验列出来几个SDK开发准则。开发过程中,也严格按照这些准则进行。
1、尽可能少的依赖第三方库
首先,因为最终SDK是需要给到其他游戏中去集成的,很可能游戏中集成的其他第三方插件有依赖或者游戏本身有依赖相同的库,导致冲突。常见的第三方库,比如androidx, android support, okhttp3, rxjava,eventbus等都很容易冲突。
另一方面,SDK本身功能并不是太复杂,很多时候,我们用到这些第三方库都是“大材小用”,仅仅用到他们里面的很少的部分,或者仅仅个别地方用到。然后就引入了一个甚至很庞大的库,增加最终游戏包体体积不说,有些库中还有资源,很可能和游戏工程混编的时候,导致冲突。
2、SDK接入尽可能简便
SDK中,我们需要将复杂的功能给封装好, 对游戏层暴露的调用接口,需要尽可能地简单。 如果你们是手游发行业务,需要对接很多游戏,SDK接入越简便,就可以给游戏那边节省掉更多的接入时间,整体上架效率就会大大的提升。
要不然一个游戏接这个SDK需要花费一周甚至更久,你想想对接10个游戏的话,需要多久。 正常我们需要尽可能将一个游戏接入SDK的时间控制在一个工作日内。
另一方面,因为SDK最终会给到不同的游戏去接入,不同游戏有不同水平的技术人员,不同的引擎,不同的版本,调用代码过于复杂的话,也不利于和各个引擎层交互和封装。
3、SDK内部集成的第三方插件尽可能方便地完成组合、替换和移除
很多情况下,我们在SDK中需要接入第三方插件, 比如海外SDK中,我们需要集成Appsflyer,Adjust等广告归因插件。那么SDK在接入的时候, 我们最好不要将这两个插件耦合写死到SDK工程代码中, 我们可以设计一套抽象的广告归因接口用于SDK层的调用,然后从配置文件中加载需要集成的插件 并通过反射完成实例化和初始化等逻辑。
对于某些类型的插件,还可能需要支持集成多个同类的插件,比如上面说到的广告归因插件, 可能需要同时集成Appsflyer和Adjust。 往后随着业务扩展或者变动,可能还需要集成其他的同类插件,或者移除一个已存在的插件。 所以在设计插件实现的时候,我们在SDK层封装一套抽象的插件接口,然后每个具体的插件用单独一个工程,并实现SDK中抽象出来的插件接口。
二、特性介绍
整套SDK的开发,我们可以大体分为客户端部分和后端部分。 客户端又分为Android客户端部分和iOS客户端部分;后端包括核心业务服务器部分、管理后台部分以及批量作业调度部分。 我们可以通过下图清晰地理清楚各个部分对应的特性和功能:
三、界面和交互设计
客户端部分,我们考虑到SDK会支持多语言, 为了让不同语言下界面上的展示尽可能的统一和规整,我们对界面和流程进行设计的时候,尽量遵循简洁顺畅的原则。 后台部分主要从使用简易上着手,采用前后端分离的方式,让运营有更好的操作体验。
感兴趣的同学或者需要看前后端演示的同学, 可以加我们的海外SDK技术交流QQ群哦:
部分界面截图:
本文出自 U8SDK技术博客,转载时请注明出处及相应链接。
本文永久链接: http://www.uustory.com/?p=2358