码迷,mamicode.com
首页 > 移动开发 > 详细

Android JNI c/c++调用java 无需新建虚拟机

时间:2019-03-27 10:47:32      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:idc   env   jar   新建   method   span   src   static   job   

近期通过研究SDL源码 得出android JNI  c/c++调用java 无需新建虚拟机: 具体步骤如下

第一步获得:两个参数 JNIEnv和jclass

void Java_com_Test_Audio_Init( JNIEnv* env,jclass cls, jobject thiz )
{
  InitJNI(env,cls);
}
bool InitJNI(JNIEnv* env,jclass cls)
{
  m_Env=env;
  m_cls=cls;  
}

第二步

获得java那边定义的函数的名字

技术图片

第三步 传递参数调用java 函数

char *str="god_is_a_girl.mp3";
char str[]="nihao";
 jbyte *by = (jbyte*)str;
 jbyteArray jarray = m_Env->NewByteArray(strlen(str));
 m_Env->SetByteArrayRegion(jarray, 0, strlen(str), by);
///调用java函数
 m_Env->CallStaticBooleanMethod(m_cls, midCreateGLContext,jarray);

 

Android JNI c/c++调用java 无需新建虚拟机

标签:idc   env   jar   新建   method   span   src   static   job   

原文地址:https://www.cnblogs.com/zhujiabin/p/10605524.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!