Android JNI c/c++調(diào)用java的實例
Android JNI c/c++調(diào)用java的實例
近期通過研究SDL源碼 得出Android JNI c/c++調(diào)用Java 無需新建虛擬機,這樣省去很多步驟,這樣調(diào)用Android JNI會變得非常容易,大家看下簡單實例:
具體步驟如下
第一步獲得:兩個參數(shù) 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那邊定義的函數(shù)的名字
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類型 | 對應(yīng)的簽名 |
| 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; |
第三步 傳遞參數(shù)調(diào)用java 函數(shù)
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); ///調(diào)用java函數(shù) m_Env->CallStaticBooleanMethod(m_cls, midCreateGLContext,jarray);
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
Android FTP服務(wù)器上傳文件攻略(代碼詳解)
這篇文章主要介紹了Android FTP服務(wù)器上傳文件攻略,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-06-06
使用adb?or?fastboot命令進入高通的9008(edl)模式的兩種方法
這篇文章主要介紹了使用adb?or?fastboot命令進入高通的9008(edl)模式,兩種方式通過命令給大家寫的非常詳細,文中又給大家補充介紹了高通手機?進入?高通9008模式的兩種方法,需要的朋友可以參考下2023-01-01
Android 啟動模式FLAG_ACTIVITY_CLEAR_TOP案例詳解
這篇文章主要介紹了Android 啟動模式FLAG_ACTIVITY_CLEAR_TOP案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下2021-08-08
Android工具類ImgUtil選擇相機和系統(tǒng)相冊
這篇文章主要為大家詳細介紹了Android工具類ImgUtil選擇相機和系統(tǒng)相冊,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-10-10
Android開發(fā)實現(xiàn)ImageView加載攝像頭拍攝的大圖功能
這篇文章主要介紹了Android開發(fā)實現(xiàn)ImageView加載攝像頭拍攝的大圖功能,涉及Android基于ImageView的攝像頭拍攝圖片加載、保存及權(quán)限控制等相關(guān)操作技巧,需要的朋友可以參考下2017-11-11
android通過配置文件設(shè)置應(yīng)用安裝到SD卡上的方法
在AndroidManifest.xml文件的manifest里面加上一句話,就可以把應(yīng)用安裝到SD卡上2013-11-11
Android使用Messenger實現(xiàn)service與activity交互
這篇文章主要介紹了android使用Messenger實現(xiàn)service與activity交互的相關(guān)資料,需要的朋友可以參考下2016-06-06
Android開發(fā)雙向滑動選擇器范圍SeekBar實現(xiàn)
這篇文章主要為大家介紹了Android開發(fā)雙向滑動范圍選擇器SeekBar實現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-06-06

