虚幻4 安卓平台SDK的接入

参考GoogleVRHMD的编写:

1.Java 调用CPP的函数大概是都是这个样子:
extern "C" void Java_com_epicgames_ue4_GameActivity_native**********(JNIEnv* jenv, jobject thiz)
{
}

前面是Java对应函数声明的位置。

在xml也要定义一下:

public native void nativeOnUiLayerBack();



2.CPP调用Java一般大概是这样:

void AndroidThunkCpp_UiLayer_SetEnabled(bool bEnable)
{
  if (JNIEnv* Env = FAndroidApplication::GetJavaEnv())
  {
  static jmethodID UiLayerMethod = FJavaWrapper::FindMethod(Env, FJavaWrapper::GameActivityClassID, "AndroidThunkJava_UiLayer_SetEnabled", "(Z)V", false);
  FJavaWrapper::CallVoidMethod(Env, FJavaWrapper::GameActivityThis, UiLayerMethod, bEnable);
  }
}



3.虚幻有一个xml文件比较有意思:

GoogleVRHMD_APL.xml

大概是这个意思,虚幻打包安卓钱,先遍历一遍这个xml文件,把所有的xml文件里面的标注gameActivityClassAdditions的添加的类里面,还有一堆其他的,可以拷贝文件,可以gameActivityImportAdditions。


在打包玩安卓以后,在Intermediate\Android文件夹下其实是一个安卓工程,
Intermediate\Android\APK\src\com\epicgames\ue4\GameActivity.java
这个文件就是生成之后的,可以看到xml里面填写的那些代码在各个函数里面。


你可能感兴趣的:(虚幻4)