[COCOS2DX]交叉编译实践+速度优化(vs2012修改win32代码+修改makefile+编译安卓项目包+部署安卓项目包到Eclipse+运行apk)

通过前面的部署过程可以知道cocos2dx的开发过程如下:

1.VS2012完成修改

2.因为指定了CPP文件位置,ndk可以通过jni方式完成C++文件的编译,运行以下命令完成proj.android的编译:

cd C:\ComputerScience\workspace-cocos\HelloWorld\proj.android

python build_native.py

3.将编译好的安卓项目导入到Eclipse进行编译和运行

但是上面这些步骤都是在官网工具包下面运行的,交叉编译一次耗时非常严重(把helloworld单个项目的win32平台开发、交叉编译安卓项目包、Eclipse编译安卓项目包、运行apk这几个步骤),下面开始以官网工具包作为基础探索优化速度的方案。

1.cocos new HelloWorld -p com.cocos2dx.org -l cpp -d C:\ComputerScience\workspace-cocos

2.查看build_naitive.py中存在以下脚本:

command = 'cocos compile -p android -s %s -m %s' % (app_android_root, build_mode)

其中app_android_root指向C:\ComputerScience\workspace-cocos\HelloWorld

相关参数解释详见http://www.cocos2d-x.org/wiki/Cocos_compile

[COCOS2DX]交叉编译实践+速度优化(vs2012修改win32代码+修改makefile+编译安卓项目包+部署安卓项目包到Eclipse+运行apk)

修改该命令为:command = 'cocos compile -p android -j 4 -s %s -m %s' % (app_android_root, build_mode),添加了-j4多核编译以加快编译速度

[COCOS2DX]交叉编译实践+速度优化(vs2012修改win32代码+修改makefile+编译安卓项目包+部署安卓项目包到Eclipse+运行apk)

尝试编译安卓项目包:

cd C:\ComputerScience\workspace-cocos\FirstDemo\proj.android

python build_native.py

[COCOS2DX]交叉编译实践+速度优化(vs2012修改win32代码+修改makefile+编译安卓项目包+部署安卓项目包到Eclipse+运行apk)

整个编译过程只需要7秒,快了很多了。

分析jni目录的android.mk文件:

[COCOS2DX]交叉编译实践+速度优化(vs2012修改win32代码+修改makefile+编译安卓项目包+部署安卓项目包到Eclipse+运行apk)

可以发现该文件指定了需要进行编译的CPP文件。

2.接下来在vs2012修改运行时候显示的项目名,然后用

cd C:\ComputerScience\workspace-cocos\HelloWorld\proj.android

python build_native.py

编译安卓项目包在手机上运行。

2.1vs2012修改名称为“My HelloWorld”:

[COCOS2DX]交叉编译实践+速度优化(vs2012修改win32代码+修改makefile+编译安卓项目包+部署安卓项目包到Eclipse+运行apk)

同时为了加快编译速度取消增量链接:

[COCOS2DX]交叉编译实践+速度优化(vs2012修改win32代码+修改makefile+编译安卓项目包+部署安卓项目包到Eclipse+运行apk)

运行结果:

[COCOS2DX]交叉编译实践+速度优化(vs2012修改win32代码+修改makefile+编译安卓项目包+部署安卓项目包到Eclipse+运行apk)

编译安卓项目包运行结果如下:

cd C:\ComputerScience\workspace-cocos\HelloWorld\proj.android

python build_native.py

[COCOS2DX]交叉编译实践+速度优化(vs2012修改win32代码+修改makefile+编译安卓项目包+部署安卓项目包到Eclipse+运行apk)

在Eclipse编译运行在安卓手机:

[COCOS2DX]交叉编译实践+速度优化(vs2012修改win32代码+修改makefile+编译安卓项目包+部署安卓项目包到Eclipse+运行apk)

至此整个交叉编译的过程就都理顺了。

上一篇:cast


下一篇:在Ubuntu下安装imx6linux系统的交叉编译环境遇到的问题总结