Cocos2d-x与Java的通讯,听起来有点悬乎。其实本质上就是JNI的调用。首先我们先来看一下JNI是什么。
一.JNI简介
1.是什么?
JNI是Java Native Interface的缩写,它提供了若干的API实现了JAVA和其他语言的通信
2.好处:
与其他语言相互调用。
与本地已编译的代码交互
二Cocos下的JNI
cocos2d-x引擎对jni的操作进行了封装,提供了一个非常好用的类:JniHelper,定义了一些常用的接口
cocos3.0版本以上此类位于引擎目录/cocos/platform/android/jni/JniHelper.h目录下
三 Cocos下JNI的调用
1.基本数据类型对应表:
注意:String类型与Object类型为引用数据类型 以L开头 以;结尾 中间为引用路径
2.主要方法
(1)静态方法调用:GetStaticMethodInfo()
(2) 非静态方法调用:GetMethodInfo()
两者都为4个参数:第一参数为对象,第二参数为JNI类所在位置,第三参数为JNI类的方法名,第四参数为JNI调用的方法类型签名
下面以静态方法的调用进行举例
调用的步骤主要分为Java端与C++端(Cocos端)
Java端主要负责写好被调用接口
C++端用于JNI调用Java端
现在开始进行Java端的实现
设计思路:
(1)Java端在src下的org.cocos2dx.cpp下建立JNI类