国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android JNI c/c++調用java的實例

2019-10-22 18:32:22
字體:
來源:轉載
供稿:網友

Android JNI c/c++調用java的實例

近期通過研究SDL源碼 得出Android JNI  c/c++調用Java 無需新建虛擬機,這樣省去很多步驟,這樣調用Android JNI會變得非常容易,大家看下簡單實例:

具體步驟如下

第一步獲得:兩個參數 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那邊定義的函數的名字

jmethodID midCreateGLContext = env->GetStaticMethodID(cls,"Test_Audio","([B)Z"); midCreateGLContext = m_Env->GetStaticMethodID(m_cls,"Test_Audio","([B)Z"); midInitSound=m_Env->GetStaticMethodID(m_cls,"init","()V"); midLoadSound=m_Env->GetStaticMethodID(m_cls,"load","(Ljava/lang/String;I)V"); midLoadMedia=m_Env->GetStaticMethodID(m_cls,"load","(Ljava/lang/String;)V"); 

 

 

ava類型      對應的簽名
boolean Z
byte B
char C
shrot S
int I
long L
float F
double D
void V
Object L用/分割包的完整類名;  Ljava/lang/String;
Array [簽名       [I       [Ljava/lang/String;

 

第三步 傳遞參數調用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開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 翼城县| 隆回县| 元朗区| 类乌齐县| 晋州市| 四平市| 土默特右旗| 马龙县| 香河县| 西宁市| 东乡| 英德市| 定州市| 黑龙江省| 苏尼特左旗| 浦东新区| 尼勒克县| 萝北县| 灵石县| 天柱县| 上栗县| 九江市| 榆中县| 阳高县| 阿巴嘎旗| 梁平县| 湖口县| 邢台市| 顺平县| 灵山县| 荆州市| 彭水| 泸溪县| 海宁市| 伊川县| 民丰县| 太谷县| 兴隆县| 民丰县| 利川市| 上虞市|