android wrapper C調(diào)用java apiAndroid學(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) 至于為什么要用靜態(tài)方法,,其實(shí)也可以不用,只是因?yàn)椴挥渺o態(tài)方法的話,,還得先實(shí)例化一下,,多了幾個(gè)步驟。都可以,。 2. 來到j(luò)ni/gamesrc/CletModule.c中,,添加函數(shù) void GotoBrowser(char* httpUri)
3. 關(guān)于"(Ljava/lang/String;)V"是怎么得到的,研究了一下,,首先javap是java的反編譯工具,,可以根據(jù).class文件反編譯得到想要的東西。 首先講目錄定位到放置.class的文件夾如 然后輸入javap -s WrapperJinterface 即可得到每個(gè)函數(shù)的簽名(貌似是參數(shù)的簽名,,搞不懂),如
(Ljava/lang/String;)V就是我們需要的參數(shù),。
3. 調(diào)用,, 在C中想要調(diào)用的位置,調(diào)用即可,。如
|
|