Unity接入多个SDK的通用接口开发与资源管理(一)
每一款游戏都有接入多个SDK的需求。当接入多个SDK时会面临两个问题:
(1)代码层面:每个SDK都有调用各自功能的方法,我们需要统一管理每个SDK提供的方法,这样会使每个SDK调用方便,使代码整洁易读。
(2)资源层面:每个SDK都带有各自的资源,如果你一股脑导入unity中,自己都分不清,以后升级某个SDK的时候会很麻烦。所以最好单独存放 每个SDK的资源。
本篇文章解决这两个问题,进行代码接口的统一调用和资源的统一管理。
首先介绍一下接入的SDK都有哪些资源。从SDK提供方下载的SDK从资源组织上一般分为两类:一类是只有android的原生jar包及其相关资源;另一类除了jar包和资源外,提供了unitypackage资源包。而unitypackage包里通常会包含一些c#脚本,里面会提供一些调用SDK某些功能的接口。这些提供了接口的SDK接起来就比较方便,而那些只提供jar包的就需要我们自己写接口。
我们要做的通用接口就是把这两类SDK整合起来,对于只提供jar包的,我们写一个接口去调用jar包里的方法,对于提供了接口的我们直接调用接口。其实说到底,接SDK就是从unity中调用android中jar包里的方法这么一件事情(暂时先不讨论iOS)。这里拿两个SDK举例,一个是信鸽SDK,它主要用于在游戏中推送通知。它属于只提供jar包的SDK。第二个是buglySDK,它能够记录下来游戏在运行时意外崩溃的日志,并提供了后台可以查看这些崩溃日志。bugly属于提供了unitypackage的SDK,即提供了接口。
这是信鸽提供的资源,有jar包和so动态链接库。

这是bugly提供的资源,一个unitypackage,和一个BuglySDK文件夹。

BuglySDK文件夹里android资源是一个bugly.jar和libs文件夹。libs里是so动态链接库。

这是bugly_unity.unitypackage包里的资源,红框里的资源是我们需要提出来单独管理的,不需要导入unity中。一般其他SDK的unitypackage包里都会有类似的资源(就是jar包和so库,可能还会有res资源和AndroidManifest.xml),这部分资源每个SDK我们分别用一个文件夹存放,在unity导出android工程后再统一添加到工程里,进行出包。这样当更新某个SDK资源时就方便多了。

到这里,我们已经明确了要做的两件事情。(1)统一调用SDK的接口。对于提供了unitypackage包的,即提供了接口的,我们直接调用,对于只提供了jar包的,我们需要自己写调用的接口。(2)对每个SDK的资源进行整理。每个SDK的libs,res,AndroidManifest等资源从unity中提取出来,分别用文件夹存放。接下来,就对SDK接口进行统一封装。
Unity接入多个SDK的通用接口开发与资源管理(一)的更多相关文章
- Unity接入多个SDK的通用接口开发与资源管理(三)
接着上篇,介绍SDK资源的导入.首先介绍一下Android Studio工程. AS工程可以由多个Module组成,我们可以把某个Module作为我们打包的Module,其他的Module当做资源导入 ...
- Unity接入多个SDK的通用接口开发与资源管理(二)
接着上篇,本篇对SDK接口进行封装.在开始之前,需要先了解下面知识. (1)unity与android之间的交互 unity通过下面方式调用android中的函数: 方法一: AndroidJavaC ...
- Unity接入微信支付SDK 2022年版安卓篇
最近1年转了UE开发,博客更新的比较少,技术栈宽了不少,以后有空尽量多更新,也方便总结记忆 Unity接入微信支付整个过程坑比较多,网上之前的教程要么比较老,要么比较零碎,只能东拼西凑摸索,跑通后还是 ...
- Unity - 接入Android SDK
在网络上,关于Unity与Android如何进行交互,雨松MOMO大神已经有两篇文章简单介绍了如何操作(1)Unity3D研究院之打开Activity与调用JAVA代码传递参数(2)Unity3D研究 ...
- Unity项目接入应用宝SDK实现截图功能
Unity项目接入应用宝SDK实现截图功能 问题由来 点击应用宝悬浮窗 如图所示 左下角有一个截图按钮 需要解决那些问题 截图信息需要由游戏引擎提供 SDK获取截图信息为同步 但是Unity引擎没有提 ...
- unity接入安卓SDK,与安卓相互通信
.接SDK是个什么样的活计? SDK的工作流程: 1. 从unity端出发,向安卓发起一系列的请求(unity call android). 2. 安卓端收到unity端调用,然后在具体调用SDK的一 ...
- Senparc.Weixin.MP SDK 微信公众平台开发教程(八):通用接口说明
一.基础说明 这里说的“通用接口(CommonAPIs)”是使用微信公众账号一系列高级功能的必备验证功能(应用于开发模式). 我们通过微信后台唯一的凭证,向通用接口发出请求,得到访问令牌(Access ...
- GJM:Unity导入百度地图SDK [转载]
感谢您的阅读.喜欢的.有用的就请大哥大嫂们高抬贵手"推荐一下"吧!你的精神支持是博主强大的写作动力以及转载收藏动力.欢迎转载! 版权声明:本文原创发表于 [请点击连接前往] ,未经 ...
- Senparc.Weixin.MP SDK 微信公众平台开发教程(十七):个性化菜单接口说明
前不久微信上线了个性化菜单接口,Senparc.Weixin SDK也已经同步更新. 本次更新升级Senparc.Weixin.MP版本到v13.5.2,依赖Senparc.Weixin版本4.5.4 ...
随机推荐
- [Kong 与 Konga与postgres数据库] 之 Kuberneres 部署
1.Kong的概述 Kong是一个clould-native.快速的.可扩展的.分布式的微服务抽象层(也称为API网关.API中间件或在某些情况下称为服务网格)框架.Kong作为开源项目在2015年推 ...
- 【算法•日更•第五十七期】快速傅里叶变换(FFT):从入门到放弃
▎一些用的上的东西 小编太菜了,很多东西都不会证明(主要是三角函数还没有学啊~~~). 附上链接https://blog.csdn.net/enjoy_pascal/article/details/8 ...
- 【算法•日更•第二十三期】数据结构:two-pointer(尺取法)&莫队
▎引入 ☞『例题』 一道十分easy的题: 洛谷P1638 长度为n的序列,m种数 找一个最短区间,使得所有数出现一遍 n≤1e6 ,m≤2e3. ☞『分析』 这道题非常的简单,但是如果不会two-p ...
- 面试官最爱的 volatile 关键字,这些问题你都搞懂了没?
前言 volatile相关的知识点,在面试过程中,属于基础问题,是必须要掌握的知识点,如果回答不上来会严重扣分的哦. volatile关键字基本介绍 volatile可以看成是synchronized ...
- Jmeter系列(50)- 详解 If 控制器
如果你想从头学习Jmeter,可以看看这个系列的文章哦 https://www.cnblogs.com/poloyy/category/1746599.html 简单介绍 可以通过条件来控制是否运行其 ...
- C++ U型数
U型数字 最近蒜头君喜欢上了U型数字,所谓U型数字,就是这个数字的每一位先严格单调递减,后严格单调递增.比如 212212 就是一个U型数字,但是 333333, 9898, 567567, 3131 ...
- MySql安装后在服务管理器里边找不到MySql服务项的解决办法(win10)
问题描述: 成功安装MySql后,使用mysql的时候,在CMD中输入net start mysql,提示服务名无效,查看服务列表也找不到mysql服务. 解决办法: 首先用管理员身份打开CMD命令, ...
- linux命令查询网站
http://linux.51yip.com/ http://man.linuxde.net/ Linux命令查询手册Linux终端下 esc + . 可以获取上次文件名
- IE浏览器连接WebSocket报错:java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986
在项目开发中整合了WebSocket,本来没什么问题了,但是偶尔发现用IE浏览器打开web端不能推送消息,因为PC端与服务器建立连接失败了.网上查了很多资料, 又看了看源码,都不对症:又怀疑是Spri ...
- .NET 设计模式 思维导图
关于.NET 设计模式 思维导图 背景说明 以前都在匆匆忙忙写代码,在无穷无尽的需求中间左冲右突,最近终于有一些闲暇的时间,来总结和思考编程中的一些核心思想,磨刀不误砍柴的功夫,期望通过总结和学习,能 ...