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 ...
随机推荐
- Who Am I? Personality Detection based on Deep Learning for Texts 阅读笔记
文章目录 源代码github地址 摘要 2CLSTM 过程 1. 词嵌入 2. 2LSTM处理 3. CNN学习LSGCNN学习LSG 4. Softmax分类 源代码github地址 https:/ ...
- neo4j批量导入数据的两种解决方案
neo4j批量导入数据有两种方法,第一种是使用cypher语法中的LOAD CSV,第二种是使用neo4j自带的工具neo4j-admin import. LOAD CSV 导入的文件必须是csv文件 ...
- Linux学习笔记 一 第三章 Linux常用命令
第三章Linux常用命令 一.文件处理命令 1.命令格式 2.目录处理命令:ls 3.目录处理命令:mkdir 4.文件处理命令: touch
- 在线快速创建SpringBoot项目
都2020年了,你还在手动创建SpringBoot项目吗?今天教你在线快速创建一个SpringBoot项目,瞬间高大上有木有! 进入正题,首先打开创建SpringBoot的官网:https://sta ...
- CAP 3.1 版本发布通告
前言 今天,我们很高兴宣布 CAP 发布 3.1 版本正式版.同时我们也很高兴的告诉你 CAP 在 GitHub 已经突破了 4000 Star. CAP 3000 Star 还是去年8月份的时候,最 ...
- MySQL标识列(自增长列)
#标识列/*又称为自增长列含义:可以不用手动的插入值,系统提供默认的序列值 特点:1.标识列必须和主键搭配吗?不一定,但要求是一个key2.一个表可以有几个标识列?至多一个!3.标识列的类型只能是数值 ...
- Fairseq-快速可扩展的序列建模工具包
一种快速.可扩展的序列建模工具包,Pytorch的高级封装库,适用于机器翻译.语言模型和篇章总结等建模任务. 抽象 Dataset:数据加载 Fairseq中的Dataset基本都是按功能逐层封装,按 ...
- MYSQL经典练习题,熟悉DQL
MYSQL经典练习题 (本练习题可让你熟悉DQL,快速的上手DQL) 首先,先在数据库中建立基本数据库以及表项: DROP DATABASE IF EXISTS `test`; CREATE DATA ...
- 【java学习笔记】LongAdder
目录 1.背景 2.LongAdder 3.Striped64内部结构 4.LongAdder的add方法解析 5.Striped64的longAccumulate方法解析 6.总结 LongAdde ...
- Htmlcss学习笔记2——选择器与常用样式
CSS引入类型 行内样式 内联样式 外部样式表 CSS选择器 基本选择器 复合选择器 伪类选择器 属性选择器 CSS字体样式 font-size font-family font-style font ...