cocos2dx安卓平台下脚本开发和交叉编译

Cocos2dx与Android集成
本文介绍如何将C/C++实现的Cocos2dx项目集成到Android工程中,包括搭建开发环境、创建Android工程、修改makefile文件及常见问题解决。

摘要

1、面临问题:调用的入口、脚本的解析器、cocos2dx源代码、脚本的扩展类等等均是由C/C++实现,但是安卓工程无法编译C/C++代码

2、解决办法:将以上由C/C++实现的部分编译成*.so库,在安卓工程中对库进行启动调用

搭建Android环境

1、安装Java JDK 和 Eclipse IDE

2安装Android SDK

3安装ADTAndroid Development Tools

4安装NDK

5安装Cygwin

6安装Cocos2d-x

(以上见http://www.cnblogs.com/graphicsme/archive/2012/11/06/2756914.html


创建Android工程

7、修改Cocos2D安装目录下的“create-android-project.bat”文件。将_CYGBIN_ANDROIDTOOLS_NDKROOT三个分别设置成Cygwinbin 录(c:\cygwin\bin)、Android SDKtools目录、NDK根目录

---注意:路径不可以含中文字符


8、运行“create-android-project.bat”生成android工程,依次按要求输入,最终在Cocos2D的根目录下会产生所输入的项目名称的文件夹(工程名假设为ABC)

---注意:输入包路径的时候必须按照xx.xx.xx的格式,否则会报错


9、将ABC工程的cpph代码拷贝到Classes中,将资源和脚本文件拷贝到Resources


10、由于我们要将cocos2dx的实现源代码全部打包到so中,那就需要对makefile文件进行修改:打开/proj.android/jni/Android.mk


11、关键字LOCAL_SRC_FILES,这个关键定义了需要打包到so中的.c.cpp文件(不包含.h文件)。我们需要手动添加的内容包括:程序的入口AppDelegate.cpp解析器、扩展文 件。可能你会问为什么没有对Cocos2dx的代码进行打包呢?!继续向下看你会找到答案。


12、关键字LOCAL_C_INCLUDES,这个关键字定义了包含的头文件位置,精确到文件夹就可以


13、makefile文件的最后几行是$(call import-module,XXX),这是加载了XXX位置的makefile文件,这就是我们为什么不用对Cocos2dx代码进行手动打包的原因,因为coco2dx文件 中提供了makefile文件,只要通过本个文件对其调用即可完成对cocos2dx代码的打包。


14、完成对Android.mk文件的修改之后,运行bash build_native.sh即可完成so文件的生成。


15、打开配置好的eclipse导入存在的安卓工程即可


可能遇到的问题总结

1、找不到某个头文件

打开Android.mk文件找到LOCAL_C_INCLUDES,将头文件所在的文件夹进行添加即可,路径是相对于修改的mk文件

 

2、某某某函数undefined

这是由于只包含的函数的头文件而没有对实现文件进行包含,打开Android.mk文件找到LOCAL_SRC_FILES进行添加即可,路径是相对于修改的mk文件

 

3、函数多重定义

这种情况一般会提示multiply,外加那里first define了巴拉巴拉的。这些提示全忽略,这个问题的原因多数只有两种:一是头文件被互相包含或多次包含了,再就 .c/.cpp文件被编了两次。

 

4、AndroidManifest.xml错误

这是由于配置文件找不到程序的图标导致的,到ABC/proj,android/res路径下创建一个drawable文件夹,在里面添加icon,.h为程序图标即可

 

5说明:

build_native.sh文件会做几件事情,第一就是把ABC/Resources中的文件(包括lua脚本和资源)拷贝到ABC/proj.android/assets中,Eclipse打包程序到手机中时拷贝 的就是assets中的资源。第二个功能是加载文件名为Android.mk的文件,这个就是传说中的的makefile文件。

 

6、NDK_ROOT未定义:在Windows的系统变量里设置一下就可以了,注意ndk版本

 

7、无法识别cocos2dx:Properties > Java Build path > Link Source,选择 ......\cocos2d-2.0-x-2.0.4\cocos2dx\platform\android\java\sr


内容概要:本文系统介绍了算术优化算法(AOA)的基本原理、核心思想及Python实现方法,并通过图像分割的实际案例展示了其应用价值。AOA是一种基于种群的元启发式算法,其核心思想来源于四则运算,利用乘除运算进行全局勘探,加减运算进行局部开发,通过数学优化器加速函数(MOA)数学优化概率(MOP)动态控制搜索过程,在全局探索与局部开发之间实现平衡。文章详细解析了算法的初始化、勘探与开发阶段的更新策略,并提供了完整的Python代码实现,结合Rastrigin函数进行测试验证。进一步地,以Flask框架搭建前后端分离系统,将AOA应用于图像分割任务,展示了其在实际工程中的可行性与高效性。最后,通过收敛速度、寻优精度等指标评估算法性能,并提出自适应参数调整、模型优化并行计算等改进策略。; 适合人群:具备一定Python编程基础优化算法基础知识的高校学生、科研人员及工程技术人员,尤其适合从事人工智能、图像处理、智能优化等领域的从业者;; 使用场景及目标:①理解元启发式算法的设计思想与实现机制;②掌握AOA在函数优化、图像分割等实际问题中的建模与求解方法;③学习如何将优化算法集成到Web系统中实现工程化应用;④为算法性能评估与改进提供实践参考; 阅读建议:建议读者结合代码逐行调试,深入理解算法流程中MOA与MOP的作用机制,尝试在不同测试函数上运行算法以观察性能差异,并可进一步扩展图像分割模块,引入更复杂的预处理或后处理技术以提升分割效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值