cocos2d-x 3.x版本Android编译配置

Dec 25, 2014


3.x版本与2.x有很大的不同,这里暂且不谈代码层面上的变化,这里记录一下3.x版本在Android下的编译。2.x版本中,Android的编译是通过shell脚本进行的(build_native.sh),但是在3.x中修改成了python文件(build_native.py)。我认为将3.x的编译脚本改成py可以说是cocos的有一大进步。sh配置方式太难以找错了,而脚本py方式很容易找错,通过查看代码可以知道编译经过几个步骤,每个步骤有哪些操作等。在便捷性和复杂度中间得到了平衡。

因为改成了python脚本,所以编译过程中我们实际需要注意几个环境变量:

  1. ANDROID_SDK_ROOT
  2. NDK_ROOT
  3. NDK_TOOLCHAIN_VERSION

只要把这几个配置好了编译过程基本没有问题,即使有问题也是很好找出来的。py脚本中大概有几个重要的函数,这里做下笔记:

  1. get_num_of_cpu(),获取当前机器上的CPU核心数。
  2. check_environmen_variables_sdk(),检查ANDROID_SDK_ROOT这个环境变量是否可用。
  3. check_environment_variables(),检查 NDK_ROOT这个环境变量是否可用。(我发现这两个名字取得很不明了)
  4. select_toolchain_version(),获取toolchain的版本号。
  5. copy_files(src, dst),拷贝文件。
  6. copy_resources(app_android_root),拷贝资源文件。
  7. build(ndk_build_param,android_platform,build_mode),编译函数,这里调用do_build(),真正的编译工作在do_build里做。

Android.mk文件的配置

  1. 由于cocos2d-x是C++写的,所以需要将源代码暴露给NDK。
  2. 配置游戏所需链接的库。

alt text