接着上篇,介绍SDK资源的导入。首先介绍一下Android Studio工程。

AS工程可以由多个Module组成,我们可以把某个Module作为我们打包的Module,其他的Module当做资源导入到主Module中。我们unity导出的Gradle工程(有一篇介绍了unity出Gradle工程)其实就是一个Module,这里叫TaiyouxiSDK。所以我们可以把其他SDK资源都做成一个Module,然后把资源分别存放到每个Module中,然后通过配置文件添加到我们需要打包的Module中。这就是资源管理的方式。

这里我已经做好了buglylibrary和xglibrary,其实就是新建一个Module,把对应的资源文件拷进去,一般是有libs文件夹、res文件夹和Androidmanifest.xml文件。Module里的资源如下:

下面就来介绍一下从unity导出Gradle工程,然后添加SDK资源,到出包的过程。(事先把Android环境搭建好)

(1)从unity中导出Gradle工程。如图叫TaiyouxiSDK。

(2)把两个Module:buglylibrary和xglibrary拷进来,把gradle(这里用的3.3)、build.gradle、gradle.properties、gradlew、gradlew.bat、local.properties、settings.gradle文件拷进来。如图:(当你用Android Studio打开TaiyouxiSDK后会自动出现这些文件,这里用命令行出包,没有使用Android Studio)

然后修改setting.gradle文件内容如下:

include ':TaiyouxiSDK', ':buglylibrary', ':xglibrary'

(2)依次进入TaiyouxiSDK,libs文件夹,把第二篇自己编写并导出的jar包拷进来,这里叫QuicksdkDemo。如图。

(3)修改TaiyouxiSDK文件夹下build.gradle文件。第一处添加两个依赖工程,第二处修改buildToolsVersion的版本。

// GENERATED BY UNITY. REMOVE THIS COMMENT TO PREVENT OVERWRITING WHEN EXPORTING AGAIN
allprojects {
repositories {
flatDir {
dirs 'libs'
}
}
} apply plugin: 'com.android.application' dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile project(':buglylibrary')//(1)添加依赖工程
compile project(':xglibrary')//添加依赖工程 } android {
compileSdkVersion 26
buildToolsVersion '25.0.1'//(2)修改版本 defaultConfig {
targetSdkVersion 26
applicationId 'com.taiyouxi.quick'
} lintOptions {
abortOnError false
} buildTypes {
debug {
jniDebuggable true
}
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-unity.txt' }
} }

(3)需要注意TaiyouxiSDK>src>main文件夹下的AndroidManifest.xml文件,AS会自动合并此文件。和TaiyouxiSDK>src>main>res>values文件夹下的string.xml文件。我在string.xml里配置了申请SDK时给的APP Id 等参数,把所有申请SDK的key、Id等参数放在这里,然后在java代码中获取。

(4)回到最外层文件夹下,Shift+右键打开命令行窗口,输入gradlew assembleDebug,然后回车,如图。

gradlew assembleDebug 

打包成功如图:

(5)最后打出的包在Taiyouxi>build>outputs>apk文件夹下,如图。

我们介绍了把每个SDK资源做成Module,导入时把对应的文件夹拷进来,进行出包。这样就把每个SDK的资源用文件夹存起来,如果更新资源,把对应的文件夹资源替换掉就可以了。

最后,整篇文章从unity上的通用接口,到Android上的中间件jar包,再到资源统一存放,介绍了如何接入并管理SDK。总结一下,我们做完以上工作后,再接入相关SDK需要哪些步骤:

(1)在unity中调用SDKManager里的与SDK相关的方法。导出Android工程。

(2)把jar包、资源Module和其他文件拷贝到工程。jar包和资源Module是我们在之前就准备好的。

(3)修改主Module中的文件,然后出包。

所以,当我们把每个SDK这样准备好后,接入还是很方便的。

Unity接入多个SDK的通用接口开发与资源管理(三)的更多相关文章

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

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

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

    每一款游戏都有接入多个SDK的需求.当接入多个SDK时会面临两个问题: (1)代码层面:每个SDK都有调用各自功能的方法,我们需要统一管理每个SDK提供的方法,这样会使每个SDK调用方便,使代码整洁易 ...

  3. Senparc.Weixin.MP SDK 微信公众平台开发教程(三):微信公众平台开发验证

    要对接微信公众平台的"开发模式",即对接到自己的网站程序,必须在注册成功之后(见Senparc.Weixin.MP SDK 微信公众平台开发教程(一):微信公众平台注册),等待官方 ...

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

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

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

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

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

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

  7. Senparc.Weixin.MP SDK 微信公众平台开发教程(九):自定义菜单接口说明

    上一篇<Senparc.Weixin.MP SDK 微信公众平台开发教程(八):通用接口说明>介绍了如何通过通用接口获取AccessToken,有了AccessToken,我们就可以来操作 ...

  8. Senparc.Weixin.MP SDK 微信公众平台开发教程(十):多客服接口说明

    微信官方的多客服接口原理是通过用户发送的信息,开发者服务器返回一条指定类型的响应信息,使用户的对话状态切换到官方的多客服状态(持续一段时间),这段时间内用户发送的所有信息都不会到达开发者的服务器,而是 ...

  9. Senparc.Weixin.MP SDK 微信公众平台开发教程(十一):高级接口说明

    这里所说的高级接口是指面向通过认证的服务号开通的高级功能. 高级功能大致可以分类为: 用户接口 分组接口 客服接口(有别于之前介绍的多客服) 群发接口 多媒体接口 二维码接口 模板消息接口(不是所有账 ...

随机推荐

  1. C#LeetCode刷题之#20-有效的括号(Valid Parentheses)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/4018 访问. 给定一个只包括 '(',')','{','}',' ...

  2. Vue CLI3 移动端适配 【px2rem 或 postcss-plugin-px2rem】

    Vue CLI3 移动端适配 [px2rem 或 postcss-plugin-px2rem] 今天,我们使用Vue CLI3 做一个移动端适配 . 前言 首先确定你的项目是Vue CLI3版本以上的 ...

  3. 怎么对比两个excel文档的数据差异

    百度经验: https://jingyan.baidu.com/article/6181c3e0877c7a152ef15304.html

  4. Pytorch_第十篇_卷积神经网络(CNN)概述

    卷积神经网络(CNN)概述 Introduce 卷积神经网络(convolutional neural networks),简称CNN.卷积神经网络相比于人工神经网络而言更适合于图像识别.语音识别等任 ...

  5. 【算法•日更•第四十二期】离散傅里叶变换(DFT)

    ▎前言 小编相当的菜,这篇博客难度稍高,所以有些可能不会带有证明,博客中更多的是定义. 我们将要学到的东西: 复数 暴力多项式乘法 DFT 当然,小编之前就已经写过一篇博客了,主要讲的就是基础多项式, ...

  6. Html5与CSS3(选择器)

    <!-- 作者:offline 时间:2018-03-21 描述:1.全选择器 *{属性1:属性值2:属性2:属性值2:...:} 2.元素(标签)选择器 标签名{属性1:属性值2:属性2:属性 ...

  7. 关于Exceptionless日志收集框架会被Fiddler抓包,从而获取到ApiKey的问题

    关于Exceptionless日志收集框架会被Fiddler抓包,从而获取到ApiKey的问题 环境:Exceptionless5.0.0.Linux.WPF客户端.Fiddler 问题:在使用Exc ...

  8. PythonCrashCourse 第四章习题

    Python 从入门到实践第四章习题 4.1想出至少三种你喜欢的比萨,将其名称存储在一个列表中,再使用for 循环将每种比萨的名称都打印出来 修改这个for 循环,使其打印包含比萨名称的句子,而不仅仅 ...

  9. autotools使用

    autotools制作makefile 下面以hello.c来说明生成makefile的过程. 基本步骤如下: 1)autoscan命令生成configure.scan文件,重命名configure. ...

  10. 你还在认为 count(1) 比 count(*) 效率高?

    你还在认为 count(1) 比 count(*) 效率高? 3 很多人认为count(1)执行的效率会比count()高,原因是count()会存在全表扫描,而count(1)可以针对一个字段进行查 ...