久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

android wrapper C調(diào)用java api - 示韋BadSmile的日志 - 網(wǎng)易博客

 techres 2011-04-27

android wrapper C調(diào)用java api

Android學(xué)習(xí) 2010-11-25 19:08:31 閱讀83 評論0   字號(hào): 訂閱

    我表示,用wrapper不用擔(dān)心無法使用android的一些特性了,,因?yàn)?,?qiáng)大的JNI可以實(shí)現(xiàn)用C調(diào)用java函數(shù),具體怎么實(shí)現(xiàn)呢,。

舉例(跳轉(zhuǎn)到瀏覽器)

1. 打開src/com/com2us/wrapper/WrapperJinterface.java, 寫你想在java中完成的功能,,比如我想跳轉(zhuǎn)到瀏覽器,參數(shù)是網(wǎng)址字符串,,那么,

 public static void GotoBrowser(String uri)
 {
  Uri myBlogUri = Uri.parse(uri);
  Intent it = new Intent(Intent.ACTION_VIEW, myBlogUri);
  activity.startActivity(it);
 }

至于為什么要用靜態(tài)方法,,其實(shí)也可以不用,只是因?yàn)椴挥渺o態(tài)方法的話,,還得先實(shí)例化一下,,多了幾個(gè)步驟。都可以,。

2. 來到j(luò)ni/gamesrc/CletModule.c中,,添加函數(shù)

void GotoBrowser(char* httpUri)
{
 extern JNIEnv* g_EnvMain;
 JNIEnv *env = g_EnvMain;    //想要調(diào)用java的函數(shù),env是必不可少的,相當(dāng)于橋梁,。
 jclass classWA = (*env)->FindClass(env, "com/com2us/wrapper/WrapperJinterface");   //classWA就指向要調(diào)用的類(大家都知道java中都是以類組織的,,所以想調(diào)用函數(shù),首先要找到它所在的類)
 jmethodID midMain = (*env)->GetStaticMethodID(env, classWA,"GotoBrowser","(Ljava/lang/String;)V");  //找到相應(yīng)的函數(shù),最后一個(gè)參數(shù)是簽名,,用javap -s -p 命令拿到的,待會(huì)細(xì)說,。)
 jstring StringArg = (*env)->NewStringUTF(env,httpUri);  //將char*的字符串轉(zhuǎn)成java的String
 (*env)->CallStaticVoidMethod(env,classWA,midMain,StringArg);  //調(diào)用此靜態(tài)方法
}

 

3. 關(guān)于"(Ljava/lang/String;)V"是怎么得到的,研究了一下,,首先javap是java的反編譯工具,,可以根據(jù).class文件反編譯得到想要的東西。

首先講目錄定位到放置.class的文件夾如

android wrapper c調(diào)用java api - 示韋badsmile - dying
然后輸入javap -s WrapperJinterface 即可得到每個(gè)函數(shù)的簽名(貌似是參數(shù)的簽名,,搞不懂),如

 

android wrapper c調(diào)用java api - 示韋badsmile - dying
(Ljava/lang/String;)V就是我們需要的參數(shù),。
3. 調(diào)用,, 在C中想要調(diào)用的位置,調(diào)用即可,。如

 GotoBrowser((char*)"

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多