做cocos2d-x的项目,一般是用电脑进行开发,然后移植到手机平台上。移植到安卓手机需要用eclipse等工具重新编译打包成apk文件。而用eclipse打包的话,要把项目的cpp文件一条条加入到Android.mk配置中,文件少无所谓,但如果文件很多,手工添加就比较麻烦了,特别是有些时候,要和原先的Andriod.mk配置做比较,本次新增了哪些文件,然后把新增的文件添加进去。
总之,打包成apk,手工修改Android.mk配置很麻烦。所以,我做了一个自动修改器。如下图:
我的Cocos2d-x Android.mk文件自动修改器下载地址:
http://download.csdn.net/detail/stevenkylelee/8426235
用QT5.4做的,要独立运行需要附带QT的dll,所以程序有16MB之大。每次运行俺的这个程序会用浏览器打开俺的CSDN博客,嘿嘿,使用俺的劳动成果,就要给俺付出点代价。>_<
要自动修改Android.mk文件,需要填写如下3个参数:
源代码目录路径:指向cocos2d-x项目的源代码目录,通常填写项目的Classes文件的路径。程序会遍历这个目录中的所有*.cpp文件,找到所有的cpp文件,生成配置字符串。
Android.mk文件路径:指向要修改的Android.mk文件。
这2个参数对应项目的目录和文件如下图所示:
搜索替换的正则表达式:为了定位替换的内容,比如:LOCAL_SRC_FILES := hellocpp/main.cpp 。程序会把原来的Android.mk中的这里的字符串替换成程序生成的,从而实现自动修改。
这里用的正则是QT实现的正则类。QT的正则和C++11、C#的正则有些不同。为什么要用正则表达式呢?正则有更好的扩展性,如果不好定位替换的内容,可以先在原来的mk文件中写一个标记,然后用正则匹配替换上。
在实践中发现,LOCAL_SRC_FILES := 字段,不仅可以用来加入cpp文件的配置,还可以用来引入so,其他库的引用配置。而我们其实要的是替换源代码配置的那个字段。“LOCAL_SRC_FILES *:=[a-zA-Z0-9 _/.]+cpp.*(\r*\n\s*\n)”这个正则会匹配到源代码配置的LOCAL_SRC_FILES。程序默认使用这个正则,当然也可以修改为其他的正则。
这3个参数,在程序被关闭会保存,下次打开程序恢复上次保存的参数设置。
设置好参数后,点击“生成”按钮就会修改指定的mk文件了。
程序修改生成的结果如下图: