Cocos2dx一步一步实现Android端热更新(C++)

现在Cocos2dx开发的网游基本上都支持热更新功能,但大多都用LUA语言开发,由于我们项目启动时间较早,开发语言为C++,今天就把自己的项目是怎么一步一步实现热更新的, 分享给大家:

 

平台:android

cocos2dx版本:3.0正式版

 

最初的思路是这样的: 

1,实现游戏资源的热更新。

2,实现代码库的热更新。

 

经最后实验把代码库的热更新也列为游戏资源更新, 这样就更方便了,两者基本上是一样的。

 

一、首先了解Android有一个System.load()方法

调用 System.load 从手机的扩展卡中加载游戏的so文件,具体这个so文件是怎么放到你的扩展卡中, 了解一下如何使用android的文件操作api就懂了。

 

二、cocos2dx中设置资源搜索路径

 

//android端获取资源目录

 std::string jinResourcePath = GameJniHelper::getResourcePath();

 

//重新设置 FileUtils 的 SearchPaths,注意:第一个path为android端发过来的。

 vector searchPaths;
 searchPaths.clear();

 searchPaths.push_back(jinResourcePath);
 vector paths = FileUtils::getInstance()->getSearchPaths();
 for (int i=0; i
 {
  searchPaths.push_back(paths[i]);
 }


 FileUtils::getInstance()->setSearchPaths(searchPaths);

 

以上主要实现在cocos2dx加载资源的时候优先选择扩展卡中的资源, 因为这里的资源才是最新的。

这里注意的是:加载tmx文件的时候, tmx文件必须与纹理的目录问题, 这个是cocos2dx代码的问题。

 

 

三、使用网络下载更新资源,做一系列的资源比对操作, 然后保存版本。

这块代码比较多, 但是业务相对来说比较简单的。


转载之--

萝卜_排骨的博客

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值