其它:
编译时(build_native.sh执行) assets bin gen libs obj res src 这些文件都是用不到的 即编译得到的.so与这些文件无关
assets的内容并不一定和resource一样 因为无法确定游戏内所有资源都来自resources (一些平台相关资源会放在各自的安卓工程内)
在eclipse运行游戏时(打包前)这些资源会被加入assets
多平台一次编译打包
在不改变class的情况下 编译一个.so 可以由所有安卓工程公用 要改变的都在安卓工程内 如res lip assets(资源确定完整)lib... 避免几个包就编译几次(编译真的很耗时!)
将xx.apk 改成xx.zip 解压可以看到安卓包内文件
assets文件夹 编译时resources下得文件会被拷贝到该目录下
bin文件夹 可删除 eclipse运行时会自动生成
1、resources.ap_文件
可以改成rar、zip等压缩文件的类型,里面包含res、AndroidMainfest.xml、resources.arsc一个个目录两个文件,并不包含assets
2、classes文件夹
有一个打包名路径的目录 包名a.b.c 则classes/a/b/c 存在
jni文件夹
1、Android.mk文件
编译设置文件 要编译哪些cpp 哪些c 。。都写在这
libs文件夹
1、armeabi/libcocos2dcpp.so文件
这个文件就是工程编译生成的动态库链接文件(包含所有游戏代码 并不是仅仅指cocos2dx的动态库)
关于armeabi
1、armeabi
armeabi是指的该so库用于Arm的通用CPU。
2、armeabi-v7a
v7a的CPU支持硬件浮点运算。
3、共同点
armeabi和armeabi-v7a是表示cpu的类型。
4、不同点
因此armeabi通用性强,但速度慢,而v7a能充分发挥v7a CPU的能力。armeabi就是针对普通的或旧的armcpu,armeabi-v7a是针对有浮点运算或高级扩展功能的arm cpu。
obj文件夹
临时文件夹 编译中生成的.o 文件 .a 文件都在这 这些文件会被生成 libcocos2dcpp.so 所以这个文件夹 编译完成后可删除
批量打包思路 :1、 替换平台相关的.o 重新生成.so 替换原.so
2、如果平台相关文件很少 只需要在java端写好native方法 让c++调用获得 appid 和 appkey。 platform_config这种文件也可以在java端转成字符串传给c++
res文件夹
存放平台相关资源
src文件夹
存放java文件