UnitySDK接入——Android篇

来源:互联网 发布:js实现二维码生成 编辑:程序博客网 时间:2024/05/23 01:18

时隔半年再次更新博客,由于近期多是功能上面的工作,更多的是代码设计方面的积累,这种不可言传只可意会的经验也不适合以文字呈现。工作上也从SDK转移到了游戏功能,同事们也开始慢慢接触SDK,想想去年的自己也是一个小白,经历了一年的摸爬滚打也变成了SDK独当一面的人(容我装装逼),所以想把这一年积累的经验通过几篇博客记录一下,方便新手更快的熟悉SDK,并且少淌坑。

为什么要接SDK

作为一款游戏,如果你想赚钱那一定需要接SDK,SDK可以帮你通过渠道登陆,可以充值支付,也可以帮你弹出广告来盈利。

接入前的准备

要接入SDK首先要准备几个必要的东西
1. 可以稳定出包的工程。比如打好AB的可以直接build成apk或者xcode工程的Unity工程。
2. SDK文档、SDK的Demo
3. 完整的平台开发环境。比如Android开发环境,Android测试机。Mac机器,IOS测试机等。
4. 一个空的外部Android工程(这个笔者后面会放到github中)

如何将Android的SDK接入到Unity工程中

Unity接入AndroidSDK有两种方式
第一种方式是通过Unity打包Android工程的
1-1

Export功能导出一个Android工程,此时可以把游戏当做一个Android应用,根据他的生命周期调用SDK的初始化,在这个安卓工程中添加调用代码,保证Unity可以在不同的游戏生命周期中调用到正确Android的接口。

第二种方式是将一个外部Android工程以jar包的方式导入到Unity工程中,以后每次打包apk的时候Unity工程就带着SDK了。
两种方法各有优缺,但是建议将两种方法都尝试一下,难免哪天就要用到其中一种。讲一个笔者的亲身经历,笔者的项目用的是第二种方式接入。但是在接某个平台的时候发现jar包中的方法个数超过了65535,想必65535这个数Android的程序员们应该不陌生,如果jar包总方法数超过了上线,所接入的SDK又一个不能精简时只能使用dex分包。当然Unity也有dex分包的工具,但是笔者看了下工具的评价并不是很好就放弃了使用工具而是通过第一种方式出该平台的包。

开始接入

现在开始笔者将介绍如何使用上文说的第二种方式接入SDK,首先下载我们准备好的空的UnitySDK工程。目录结构大概是这样的这里写图片描述
src用来存放我们的SDK相关代码,libs用于存放SDK的各种so库和jar包,res用于存放SDK的资源,SDK用到的权限和配置需要修改AndroidManifest.xml。

根据SDK文档码代码

拿到了一个SDK,首先我们要看一遍文档大概了解这个SDK是做什么的,然后我们要跑跑他的Demo,通过实际操作大概了解SDK各个接口的效果。然后回过头将SDK文档

仔仔细细读10遍

下面开始按照文档需求一个一个接入,接入过程中除了必接的接口外也稍微看看非必接接口,比如SDK版本号、SDK资源号、SDK的一些静态标识建议也接进来以备不时之需。
具体Unity如何和Android交互可以参考笔者的另外一篇帖子 Unity社交功能开发——图片上传

将SDKAndroid工程导入到Unity中

修改Android工程配置如图
这里写图片描述
然后通过菜单Project->Clean将工程清理一下,此时工程的bin目录会生成一个jar包
这里写图片描述
在Unity工程中建立以下目录结构
这里写图片描述
将Android工程中的libs目录、res目录、AndroidManifest.xml拷贝,将生成的jar包放在bin目录下。拷贝过程中记得将libmain.so、libmono.so、libunity.so以及unity-classes.jar文件删除。因为unity打包时会自动添加,如果此时不删unity打包会提示jar包冲突。

用unity直接打包apk,出包测试吧

1 0
原创粉丝点击