Android手游SDK那点事(二)SDK项目设计

项目构建

先上一个完整架构图,图中名词解释:
project:AndroidStudio新建的project项目
module:AndroidStudio在project项目下新建的module
library:module是一个library库
application:module是一个application应用程序
Android手游SDK那点事(二)SDK项目设计
KSDK为名称模拟项目构建

项目建议:
1、这里游戏sdk不使用mvp或者mmvm的方式,其实这两种模式开发者在开发应用的时候不要盲目的使用,根据自己项目业务情况选择一个合适的模式,并加以修改,适合自身项目需求的才是最好的。

2、尽量的不要去使用第三方的库,比如okhttp,虽然强大,但如果游戏包或者其他渠道sdk同样也是用了okhttp,并且版本不一样,接口可能也会存在差异,在打包的时候,就会报异常。如果你是大渠道,别人都求着上你们渠道的,你有发言权啊,随便怎么引入第三方库,别人都是以你的为准

gradle使用版本:5.1.1,gradle插件版本3.4.1

KSDKCommon:公共模块,单独为一个project,因为其他sdk也会用到,分开好点,也可以作为module写在其他project,子模块module命名为ksdk_common,library库,模块包含的功能:工具类,网络库等一些公共资源。
Android手游SDK那点事(二)SDK项目设计
KSDK:运营sdk核心,单独为一个project,子模块module命名为ksdk_lib,library库,对内的账号体系和支付体系等,对外定义接口与中间件连接
Android手游SDK那点事(二)SDK项目设计

KSDKMiddle:中间件项目,中间件其实就是内部sdk和外部第三方渠道对接中间的那一层,上层依赖定义的外部接口,下层调用内部sdk接口,中间根据三方渠道不同的需求随意接入, 笔者这里以application形式新建中间件,实际开发中笔者的项目是library,生成jar或者aar后面还有个demo演示项目,这里就不这么干了。中间件只要有三个关键:ZSDK.java外部调用的接口,ZSDKAuth.java渠道对接类,ZSDKApplication类,除接口定义不能变外, 其他可随意变,新增、修改逻辑等等
Android手游SDK那点事(二)SDK项目设计

  • 演示项目没有做任何权限的操作,故没有动态申请权限
  • 演示项目没有做任何混淆
  • 演示项目采用的是jar打包,这个可以随意,aar都可以

中间件接入后运行生成apk,可做接入演示调试,还有个目的就是后续的渠道打包,通过demo apk和母包进行合并,这个后面会讲到

总结

广告sdk 和h5sdk这里不做讲解,为什么呢,时间不多,笔者有时间再去写了。
上面模块中很多方法都未实现或者为演示示例,可以根据真实环境做实现,demo只做模拟。
把demo放出来供读者参考:
github地址 https://github.com/hiongyend/KSDK

上一篇:Android手游SDK那点事(一)简述