移植步骤:
1:ndk环境搭建linux环境
2:Android.mk文件的编写:
四个核心文件:
1):android/jni/Application.mk
2):android/jni/Android.mk
subdirs:=$(addprefix$(LOCAL_PATH)/../../../,$(addsuffix/Android.mk,\
cocos2dx\
CocosDenshion/android\
Box2D\
))
3):android/jni/helloworld/Android.mk文件
LOCAL_PATH:=$(callmy-dir)
include$(CLEAR_VARS)
LOCAL_MODULE:=helloworld_shared
LOCAL_MODULE_FILENAME:=libhelloworld
LOCAL_SRC_FILES:=main.cpp
LOCAL_C_INCLUDES:=$(LOCAL_PATH)/../../../Classes
LOCAL_STATIC_LIBRARIES:=png_static_prebuilt
LOCAL_STATIC_LIBRARIES+=xml2_static_prebuilt
LOCAL_STATIC_LIBRARIES+=jpeg_static_prebuilt
LOCAL_WHOLE_STATIC_LIBRARIES:=game_logic_static
LOCAL_WHOLE_STATIC_LIBRARIES+=cocos2dx_static
LOCAL_SHARED_LIBRARIES:=cocosdenshion_sharedbox2d_shared
include$(BUILD_SHARED_LIBRARY)
$(callimport-module,cocos2dx/platform/third_party/android/modules/libpng)
$(callimport-module,cocos2dx/platform/third_party/android/modules/libxml2)
$(callimport-module,cocos2dx/platform/third_party/android/modules/libjpeg)
4)Classes/Android.mk
LOCAL_PATH:=$(callmy-dir)
include$(CLEAR_VARS)
LOCAL_MODULE:=game_logic_static
LOCAL_MODULE_FILENAME:=libgame_logic
#获取制定目录下的所有的cpp文件
cppfilestemp1:=$(shellfind$(LOCAL_PATH)/../src-typed)
cppfilestemp2:=$(shellfind$(cppfilestemp1)-name*.cpp)
cppfilestemp3:=$(sort$(cppfilestemp2))
cppfiles:=$(subst$(LOCAL_PATH)/,,$(cppfilestemp3))
cppfilestemp111:=$(shellfind$(LOCAL_PATH)/../lib_json-typed)
cppfilestemp222:=$(shellfind$(cppfilestemp111)-name*.cpp)
cppfilestemp333:=$(sort$(cppfilestemp222))
cppfilesss:=$(subst$(LOCAL_PATH)/,,$(cppfilestemp333))
LOCAL_SRC_FILES:=\
AppDelegate.cpp\
GLES-Render.cpp\
$(cppfiles)\
$(cppfilesss)
LOCAL_C_INCLUDES:=$(LOCAL_PATH)\
$(LOCAL_PATH)/../../cocos2dx\
$(LOCAL_PATH)/../../cocos2dx/platform\
$(LOCAL_PATH)/../../cocos2dx/include\
$(LOCAL_PATH)/../../cocos2dx/lua_support\
$(LOCAL_PATH)/../../CocosDenshion/include\
$(LOCAL_PATH)/../src/include\
$(LOCAL_PATH)/../lib_json/include
LOCAL_STATIC_LIBRARIES+=xml2_static_prebuilt
LOCAL_STATIC_LIBRARIES+=jpeg_static_prebuilt
LOCAL_WHOLE_STATIC_LIBRARIES+=cocos2dx_static
LOCAL_SHARED_LIBRARIES:=cocosdenshion_sharedbox2d_shared
include$(BUILD_STATIC_LIBRARY)
$(callimport-module,cocos2dx/platform/third_party/android/modules/libpng)
$(callimport-module,cocos2dx/platform/third_party/android/modules/libxml2)
$(callimport-module,cocos2dx/platform/third_party/android/modules/libjpeg)
3:java代码调用:
static{
System.loadLibrary("cocosdenshion");
System.loadLibrary("box2d");
System.loadLibrary("helloworld");
}
☞:LOCAL_SRC_FILES += $(subst $(LOCAL_PATH)/,,$(shell find $(LOCAL_PATH)/../../../Classes -name "*.cpp" -print))