Unity安卓IL2CPP热更方案

导语

安卓平台性能影响小,可快速修复外网bug。

背景

1.调研现有项目大多数是uniy引擎下采样c#语言编写的。
2.常用的方案,首先是sLua、uLua、xLua等lua系
3.现有热更要求
a.版本迭代的代码差异非常大,担心可能不太适合更新大量代码
b.为了修复战斗对性能要求高的一类bug,需要一种完全不影响代码运行性能的更新方案

发布策略

安卓灰度优先于AppStore的发布,等安卓版本灰度稳定之后再发布iOS,因此代码更新只考虑安卓的更新,iOS只走资源更新即可,剩下增量更新交给AppStore,此方案在后续运营中得到了良好的验证。

IL2CPP加载的实现原理

1、替换整个IL2CPP动态库,因此可以更新所有代码,不管是新功能还是修bug都可以搞定。

2、IL2CPP支持的C#语法特性随意使用,客户端开发同学完全无感知。

3、完全符合Unity启动加载流程,不会因为更新模块引入新的bug。

补丁加载流程

1.Unity安卓启动流程中,加载IL2CPP动态库的时候,提前运行补丁加载函数,实现的功能是读取patch目录下的版本配置文件.
2.与AndroidManifest里安卓的versioncode进行比较,如果补丁的版本号大于基础包apk的版本号,就加载补丁里的动态库,否则就加载apk包内的动态库。

安卓灰度更新流程

1.客户端请求登录
2.游戏服务器接受到登录请求会执行版本号、资源号、patch号,然后会通知客户端是否需要进行更新
3.客户端主动向资源服务器发起查询更新内容
4.资源服务器返回更新内容给游戏客户端
5.游戏客户端判段是不是存在patch,如果有就进入patch流程
6.检查到资源更新完成则判断是不是更新到补丁
7.如果更新到补丁就进行解压并且拷贝到指定app目录
8.没有更新到补丁则完成更新流程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你一身傲骨怎能输

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值