每一款游戏都有接入多个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的通用接口开发与资源管理(一)的更多相关文章

  1. Unity接入多个SDK的通用接口开发与资源管理(三)

    接着上篇,介绍SDK资源的导入.首先介绍一下Android Studio工程. AS工程可以由多个Module组成,我们可以把某个Module作为我们打包的Module,其他的Module当做资源导入 ...

  2. Unity接入多个SDK的通用接口开发与资源管理(二)

    接着上篇,本篇对SDK接口进行封装.在开始之前,需要先了解下面知识. (1)unity与android之间的交互 unity通过下面方式调用android中的函数: 方法一: AndroidJavaC ...

  3. Unity接入微信支付SDK 2022年版安卓篇

    最近1年转了UE开发,博客更新的比较少,技术栈宽了不少,以后有空尽量多更新,也方便总结记忆 Unity接入微信支付整个过程坑比较多,网上之前的教程要么比较老,要么比较零碎,只能东拼西凑摸索,跑通后还是 ...

  4. Unity - 接入Android SDK

    在网络上,关于Unity与Android如何进行交互,雨松MOMO大神已经有两篇文章简单介绍了如何操作(1)Unity3D研究院之打开Activity与调用JAVA代码传递参数(2)Unity3D研究 ...

  5. Unity项目接入应用宝SDK实现截图功能

    Unity项目接入应用宝SDK实现截图功能 问题由来 点击应用宝悬浮窗 如图所示 左下角有一个截图按钮 需要解决那些问题 截图信息需要由游戏引擎提供 SDK获取截图信息为同步 但是Unity引擎没有提 ...

  6. unity接入安卓SDK,与安卓相互通信

    .接SDK是个什么样的活计? SDK的工作流程: 1. 从unity端出发,向安卓发起一系列的请求(unity call android). 2. 安卓端收到unity端调用,然后在具体调用SDK的一 ...

  7. Senparc.Weixin.MP SDK 微信公众平台开发教程(八):通用接口说明

    一.基础说明 这里说的“通用接口(CommonAPIs)”是使用微信公众账号一系列高级功能的必备验证功能(应用于开发模式). 我们通过微信后台唯一的凭证,向通用接口发出请求,得到访问令牌(Access ...

  8. GJM:Unity导入百度地图SDK [转载]

    感谢您的阅读.喜欢的.有用的就请大哥大嫂们高抬贵手"推荐一下"吧!你的精神支持是博主强大的写作动力以及转载收藏动力.欢迎转载! 版权声明:本文原创发表于 [请点击连接前往] ,未经 ...

  9. Senparc.Weixin.MP SDK 微信公众平台开发教程(十七):个性化菜单接口说明

    前不久微信上线了个性化菜单接口,Senparc.Weixin SDK也已经同步更新. 本次更新升级Senparc.Weixin.MP版本到v13.5.2,依赖Senparc.Weixin版本4.5.4 ...

随机推荐

  1. LeetCode 309 Best Time to Buy and Sell Stock with Cooldown 解决方案

    题目描述 给定一个整数数组,其中第 i 个元素代表了第 i 天的股票价格 .​ 设计一个算法计算出最大利润.在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票): 你不能同时参与多笔 ...

  2. 2、java数据类型转换

    当数据类型不一样时,将会发生数据类型转换. 1.自动类型转换(隐式) 1. 特点:代码不需要进行特殊处理,自动完成. 2. 规则:数据范围从小到大. System.out.println(1024); ...

  3. JMeter软件测试工具介绍及基本安装教程

    一.工具介绍 (一)简介 Apache JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域. 它可以用于测试 ...

  4. 数据源管理 | 分布式NoSQL系统,Cassandra集群管理

    本文源码:GitHub·点这里 || GitEE·点这里 一.Cassandra简介 1.基础描述 Cassandra是一套开源分布式NoSQL数据库系统.它最初由Facebook开发,用于储存收件箱 ...

  5. Java并发--volatile关键字

    一.volatile的实现原理 synchronized是阻塞式同步,在线程竞争激烈的情况下会升级为重量级锁,而volatile就可以说是JVM提供的最轻量级的同步机制.JMM告诉我们,各个线程会将共 ...

  6. unity探索者之微信分享所有流程,非第三方插件

    版权声明:本文为原创文章,转载请声明http://www.cnblogs.com/unityExplorer/p/7560575.html 很久没有写新博客了,前段时间有些忙,这几天趟了几个微信分享的 ...

  7. 一个@Transaction哪里来这么多坑?

    前言 在之前的文章中已经对Spring中的事务做了详细的分析了,这篇文章我们来聊一聊平常工作时使用事务可能出现的一些问题(本文主要针对使用@Transactional进行事务管理的方式进行讨论)以及对 ...

  8. Jmeter 常用函数(14)- 详解 __strLen

    如果你想查看更多 Jmeter 常用函数可以在这篇文章找找哦 https://www.cnblogs.com/poloyy/p/13291704.htm 作用 读取给定字符串的长度 语法格式 ${__ ...

  9. 第五篇 Scrum冲刺博客

    一.会议图片 二.项目进展 成员 完成情况 今日任务 冯荣新 未完成 购物车列表,购物车工具栏 陈泽佳 未完成 静态结构 徐伟浩 商品信息录入 协助前端获取数据 谢佳余 未完成 搜索算法设计 邓帆涛 ...

  10. HYSBZ - 2243 树链剖分 + 线段树 处理树上颜色段数

    用线段树处理颜色段数 记录区间内的颜色段数,区间右端点的颜色,区间右端点的颜色. int tr[maxn<<2], lc[maxn<<2], rc[maxn<<2] ...