项目构建

上一个完整架构图

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库,模块包含的功能:工具类,网络库等一些公共资源。

KSDK:运营sdk核心,单独为一个project,子模块module命名为ksdk_lib,library库,对内的账号体系和支付体系等,对外定义接口与中间件连接

ISDKApi.java接口定义的外部所有接口方法:

package com.mrkzs.android.ksdk_lib.open;import android.app.Activity;
import android.app.Application;
import android.content.Intent;
import android.content.res.Configuration;import com.mrkzs.android.ksdk_lib.open.req.OrderReq;
import com.mrkzs.android.ksdk_lib.open.req.RoleInfoReq;import java.util.HashMap;/*** Created by KINCAI* <p>* Desc 定义对外游戏接入的接口* <p>* Date 2020-05-18 16:22*/
public interface ISDKApi {void registerSDKCallback(ISDKCallback callback);ISDKApi initSDK(Activity activity, ISDKInitCallback callback);void setDebugMode(boolean debug);void login(Activity activity);void logout(Activity activity);void pay(Activity activity, OrderReq orderReq);void setRoleData(RoleInfoReq roleInfoReq);String getSDKVersion();void onStart(Activity activity);void onResume(Activity activity);void onPause(Activity activity);void onStop(Activity activity);void onRestart(Activity activity);void onDestroy(Activity activity);void onExit(Activity activity,ISDKExitCallback callback);void onNewIntent(Activity activity, Intent intent);void onConfigurationChanged(Activity activity, Configuration newConfig);void onKeyBack(Activity activity);void onActivityResult(Activity activity,int requestCode, int resultCode, Intent data);void setExtendedData(HashMap<String, String> extend);void appOnCreate(Application application);void appAttachBaseContext(Application application);
}

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

KSDK.java实现的是KSDK核心库里面的ISDKApi接口

public class KSDK implements ISDKApi {}

KApplication.java也是对外接口,cp需要接入,如无法在manifest文件接入,那就直接继承,如果连继承都不行的话,我们在ISDKApi提供了两个方法(void appOnCreate(Application application);void appAttachBaseContext(Application application))可以在cp的application调用,这样的话我们后续拿到这个游戏接入第三方渠道的包可能会有问题。

package com.mrkzs.android.middle_ksdk;import android.app.Application;
import android.content.Context;/*** Created by KINCAI* <p>* Desc 为什么吧application放到中间件* 1、首先它也是一个对外接口,接口固定* 2、不同渠道对application的接入都有不同的要求,有的调用接口,而有的要继承* <p>* Date 2020-05-18 16:54*/
public class KSDKApplication extends Application {@Overridepublic void onCreate() {super.onCreate();//调用sdk//渠道}@Overrideprotected void attachBaseContext(Context base) {super.attachBaseContext(base);//调用sdk//渠道}
}
  • 演示项目没有做任何权限的操作,故没有动态申请权限
  • 演示项目没有做任何混淆
  • 演示项目采用的是jar打包,这个可以随意,aar都可以

中间件接入后运行生成apk,可做接入演示调试,还有个目的就是后续的渠道打包,通过demo apk和母包进行合并,这个后面会讲到Android手游SDK那点事(四)聚合打包

总结

h5sdk、广告sdk、插件sdk看demo工程

上面模块中很多方法都未实现或者为演示示例,可以根据真实环境做实现,demo只做模拟。
把demo放出来供读者参考:
github地址 https://github.com/hiongyend/KSDK

如有游戏sdk或者渠道打包方面开发需求,可扣扣:171970918

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

Android手游SDK那点事(二)SDK项目结构设计(初版,废弃)相关推荐

  1. Android手游SDK那点事(一)简述

    常见名词 CP:游戏厂商,就是开发游戏的,一般情况下CP常常指提供游戏的一方,不一定是研发,只要接入我们SDK,提供给我们游戏,你就是CP. 发行:代理游戏产品,进行渠道的发行. SDK:这里指游戏开 ...

  2. Android手游SDK那点事(四)聚合打包

    更新: 聚合SDK 我们的SDK其实也可以称为聚合SDK,所谓聚合,就是CP游戏方接入聚合SDK,然后通过打包工具将游戏分发到更多渠道上,我们的SDK也有这个能力,相对渠道少一点 分发渠道包 以下操作 ...

  3. 关于android手游Sdk开发的专题(一)

    随着手游行业的蓬勃发展,以及各大IP加入,对于Android手游插件sdk的开发也多了起来. 下面我将给大家分享手游插件的开发细节 1.sdk开发与传统的app开发的不同点 首先做为sdk由于要兼容e ...

  4. 安卓修改大师揭秘Android手游破解全过程

    由于安卓修改大师的零门槛学习成本,让安卓应用程序的破解和二次开发变得相当简单,也正因如此,手机APP遭受破解和盗版问题长期存在,且愈演愈烈.尤其是手游行业,如刀塔传奇.植物大战僵尸.2048等知名游戏 ...

  5. 浅析android手游lua脚本的加密与解密(番外篇之反编译的对抗)

    前言   去年在看雪论坛写了一篇<浅析android手游lua脚本的加密与解密>的精华文章,今年写一篇番外篇,将一些lua反编译对抗的内容整合一起,并以3个实例作为说明(包括2018腾讯游 ...

  6. Android手游《》斗地主完整的源代码(支持单机和网络对战)

    Android手游<斗地主>完整的源代码(支持单机和网络对战)下载.一个很不错的源代码. 斗地主掌游是一个独特的国内社会斗地主棋牌游戏,之后玩家可以下载网上斗地主和全世界.掌游斗地主特点: ...

  7. 浅析android手游lua脚本的加密与解密

    2018.05.02更新 这段时间在翻备份的硬盘,突然发现了以前的分析项目和代码,从里面提取了之前附件的内容,现在上传给大家,真是柳暗花明又一村啊.附件包括201703版本的梦幻手游里面提取的so文件 ...

  8. 关注手游安全,揭秘Android手游破解全过程

    由于Android系统的开放性,让人人都是开发者成为可能,也正因如此,手机APP遭受破解和盗版问题长期存在,且愈演愈烈.尤其是手游行业,如刀塔传奇.植物大战僵尸.2048等知名游戏被破解的案例不胜枚举 ...

  9. Android 手游聚合SDK那些事

    前言 在安卓游戏SDK这个技术领域呆了已经有4年多,从游戏发行中的一员逐渐转为游戏研发中的一员.从开始什么都不懂的菜鸟,摸爬滚打了几年,多多少少对这个行业以及技术领域有了相对成熟的理解.本文纯概念性的 ...

最新文章

  1. 计算机二级申请创新学分理由,创新学分申请书范文
  2. JBPM4.4与SSH2的整合
  3. 怎么提高es服务器的性能,es集群服务器配置规则是怎样的?什么是es集群
  4. mysql 分类计数器_PHP MySQL映像计数器
  5. layui导航栏页面滚动固定_帮你搞定长滚动网页的设计!这5种设计策略需谨记!...
  6. 百度前端学院参考答案:第二十五天到第二十七天 倒数开始 滴答滴 滴答滴(2)...
  7. ORACLE 数据同步时,批量进行新增和更新操作的SQL写法
  8. Json转换为Model,Struct,Class对象 Swift
  9. 易班自动答题脚本_如何使用python进行自动网上考试
  10. 机器学习--K-近邻算法(KNN)
  11. 2022年系统架构设计师考试大纲
  12. linux清理垃圾缓存文件在哪,Linux系统需要清理垃圾文件和优化系统吗?
  13. 再生龙给分区安装linux,用Clonezilla再生龙备份还原UBUNTU(LINUX)系统分区(可以备份MAC系统分区)...
  14. 【题解】[NOIP2018 提高组] 填数游戏
  15. Python通过机器学习实现对个人信用评估
  16. EDA虚拟机分享2020版本(Synopsys2020)
  17. EtherCAT运动控制卡小线段前瞻的连续插补运动
  18. 2023河南理工大学计算机考研信息汇总
  19. Hadoop大家族框架介绍
  20. 计算机应用基础奥鹏2021,2021奥鹏计算机应用基础《Word 大作业》离线作业.docx

热门文章

  1. 分享Oracle 11G OCP电子版教材(051,052,053)
  2. 拼多多商家引流方法:新手一定要知道的几个引流方法!拼多多补单软件
  3. 呱呱自动喝彩-无聊制作
  4. ecp应用程序中的服务器错误,ECP 运行状况设置疑难解答
  5. QUIC 协议在蚂蚁集团落地总结
  6. 【opencv】圆检测(非hough)
  7. 太极root权限_太极下载无需root
  8. PERT管与PERT二型管的区别
  9. SMLT中增加新的语言
  10. Centos7 安装 OpenStack 遇到过的错误