1、Cocos2d-x 是C++语言,Android 通过NDK也可以调用C++代码,不过Android 引用C++文件,对C++的命名是有要求的,但是在Cocos2d-x编译成Android项目的时候只需引入两个Cocos 为我们提供的两个java包就行了,而不用我们自己实现符合要求的C++类,这是为什么呢?
原来是cocos为我们提供的两个包已经为我们的Android项目完成了初始化,而在cocos项目根目录下,cocos目录,platform目录,Android目录,jni目录下就有按照NDK调用C++代码命名规范的c++类。
2、Andoir NDK在编译coco2d项目是怎么个步骤呢?其实就是通过jni文件夹下的Android.mk文件:
$(call import-add-path,$(LOCAL_PATH)/../../cocos2d) $(call import-add-path,$(LOCAL_PATH)/../../cocos2d/external) $(call import-add-path,$(LOCAL_PATH)/../../cocos2d/cocos)这三行引入了cocos2d框架的三个文件夹,在我们初次导入到Eclipse中时,ndk要编译好长时间这些文件,然后编译Classes文件夹下我们项目中自己定义的C++ class,但是当我们每次build或者Run as到真机的时候,NDK还是会进行编译,但是以后编译则只会编译我们修改过的文件。
我们知道NDK是根据Android.mk来进行编译的,但是上面的三行引入文件夹,NDK是在怎么进行编译的呢,原来在这3个文件都有一个Android.mk共NDK使用,由此可见,以后我们也可以以这种方式引入其他我们需要的c++ lib文件。