安卓下cocos2dx实现cpp部分在线更新

目前cocos2dx + lua的方式可以动态更新所有的脚本文件,但是却无法动态更新cpp部分的代码(这部分东西一般我们称之为底包),事实上采用同样的方案在android下也是可以实现动态更新的,只需要将java代码里加载libgame.so的代码稍微做些修改即可

static {

System.loadLibrary("game");

}

将上面的代码移到onCreate里大概如下

protected void onCreate(Bundle savedInstanceState) {

File file = new File(getFilesDir().getAbsolutePath()

+ "/libgame.so");

if (file.exists()) {

System.load(file.getAbsolutePath());

} else {

System.loadLibrary("game");

}

super.onCreate(savedInstanceState);

}

这样一来我们就可以像更新lua脚本一样将libgame.so也更新到可写目录下,然后加载那个新的libgame.so,具体的可能还需要做些修改以保证在修改libgame.so的时候当前程序不会崩溃,这些都有办法来实现。

大概调研了一下,ios可以创建动态链接库,技术上允许,但是审核app时会被拒掉,不允许这种方式来使用,因此可能ios上无法实现如android上的动态更新,不过大家也可以集思广义来想想还有没有其他的办法,如果有什么方案请分享一下,多谢。

安卓下cocos2dx实现cpp部分在线更新

时间: 2024-08-04 15:30:49

安卓下cocos2dx实现cpp部分在线更新的相关文章

Mac环境下cocos2d-x开发环境完全指南

本教程来自CSDN博客:http://blog.csdn.net/zhaokaiqiang1992 转载请说明! 本教程主要指导新手在Mac环境下cocos2d-x开发环境搭建. 1.cocos2d-x下载 下载网站:http://cn.cocos2d-x.org/download/ 下载3.x版本后,解压即可 2.必备软件安装及环境配置 进行cocos2d-x开发,必须安装的软件有 Java SDK(Mac自带) Ant(安装可以参考这个教程:http://www.cnblogs.com/il

max环境下cocos2d-x 3.0的环境搭建

一开始始终找不到网上说得create_project.py,所以网上通过这个的方法行不通. 所以就找了点关于3.0的资料,貌似在3.0正式版里是通过**/cocos2d-x-3.0/tools/cocos2d-console/bin/cocos.py来创建工程的. 不过3.0正式版要先搞定环境变量.. 1. 打开 ~/.bash_profile ,添加以下信息(具体为什么叫这些没搞明白,回头可以试试不叫这些名字) export COCOS2DX_ROOT=/Users/*/Sites/cocos

mac下cocos2dx(带jsoncpp第三方库)编译为android项目心得

在mac下好不容写完了游戏,本以为轻轻松松就能编译为android项目,想不到弄了将近1整天才将问题解决 首先不带jsoncpp的编译方式请参考:http://www.bold-it.com/ios/cocos2d-x-box2d-iosandroid-hybrid-tutorial/ 带jsoncpp第三方库的参考了http://blog.csdn.net/sniffer12345/article/details/7336732,对作者表示感谢. 我使用的是正常的jsoncpp版本,在json

xcode5下cocos2dx横竖屏设置

我们在开发一款游戏之前一定会考虑的一件事就是,我们的游戏是支持横屏还是竖屏,又或者是横竖屏都支持.那么如何在xcode中对项目进行设置呢?下面我就在xcode5.1.1中利用cocos2dx2.2.3,从新建项目开始,来进行游戏横竖屏的设置. 一.新建项目 找到cocos2dx相应目录,利用python脚本新建项目,在MAC的终端输入如下命令(此处为我的目录位置,项目名与包名任意命名): cd /cocos2d-x-2.2.3/tools/project-creator python creat

在Windows如何解决下Cocos2d-x示例代码TestCpp我找不到lib问题库文件

遇到此问题,首先确定失踪的库文件,然后找到文件夹,库文件. 在编制Cocos2d-x在TestCpp工程,提示缺少lib文件,共同拥有下面2种可靠解决方式: 1.在Cocos2d-x的根文件夹Debug.win32下找到全部库文件,拷贝到TestCpp的\cocos2d-x***\samples\Cpp\TestCpp\proj.win32\Debug.win32文件夹下. 2.点击项目-XX属性->链接器->常规->附加库文件夹.然后把所需库的库文件所在文件夹加入进去 版权声明:本文博

win8.1下cocos2d-x 3.x环境搭建

Win8.1下Cocos2d-x 3.4环境搭建 第一步: 需要下载的:(Windows 64位系统下环境搭建) Ant   apache-ant-1.9.4-bin.zip NDK   android-ndk-r9d-windows-x86_64.zip SDK   adt-bundle-windows-x86_64-20130729.zip VS2012 cocos2d-x-3.4.zip python_2.7.8_32 jdk-8-windows-x64.exe 重要的两个命令: 1 2

window7下 cocos2dx android交叉编译环境部署小结

上周被android交叉编译搞惨了,还好最后弄好了,写个小结以后备用吧. 步骤,1.下载cygwin的devel和shells模块 2. 2.设置环境变量 a.设置NDK_ROOT b.设置Path 编辑Path,在后面追加4个环境变量,以;号隔开(别忘了给前面的加上;),4个分别是android的sdk的platform-tools,android的sdk的tools,   cygwin的bin,上面添加的NDK_ROOT C:\Work\adt-bundle-windows-x86_64-2

安卓笔记2——安卓下的测试和数据存储方式

今天开始介绍安卓的另一个基础知识,安卓下的测试和数据存储的几种方式. 以后后同步发出对应笔记.老规矩,用一张图来介绍今天的内容. 图片看不清的话可以右键新窗口打开. 一.测试 1,分类 黑盒测试: 是以用户的角度,从输入数据与输出数据的对应关系出发进行测试的. 白盒测试: 又称结构测试.透明盒测试.逻辑驱动测试或基于代码的测试. 单元测试: 又称模块测试,是开发者编写的一小段代码,用于检验被测代码的一个很小的.很明确的功能是否正确. 功能测试: 根据产品特性.操作描述和用户方案,测试一个产品的特

解决linux下cocos2dx不能播放声音

cocos2dx2.2.1在linux下引用#include "SimpleAudioEngine.h",报错找不到该文件. 修改makefile文件,添加 SHAREDLIBS += -lcocosdenshion COCOS_LIBS +=$(LIB_DIR)/linux/release/libcocosdenshion.so 并将cocos2d-x-2.2.1/CocosDenshion/include目录下的SimpleAudioEngine.h和Export.h拷贝到ecli