最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android JNI c/c++調(diào)用java的實例

 更新時間:2017年07月13日 16:29:07   作者:typename  
這篇文章主要介紹了Android JNI c/c++調(diào)用java的實例的相關(guān)資料,需要的朋友可以參考下

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)文章

最新評論

聊城市| 同心县| 婺源县| 大竹县| 庐江县| 英德市| 宝山区| 巴彦淖尔市| 惠安县| 阿拉善盟| 金川县| 延吉市| 绍兴市| 遂昌县| 宽城| 钟祥市| 理塘县| 唐河县| 津南区| 瓦房店市| 北票市| 佛学| 古交市| 多伦县| 广河县| 黎城县| 新泰市| 武宣县| 永新县| 曲靖市| 凉城县| 潞城市| 武宣县| 伊金霍洛旗| 城口县| 文水县| 明水县| 嵩明县| 庆阳市| 克东县| 双桥区|