JNI開發(fā):Jni數(shù)據(jù)類型和構(gòu)造方法父類的訪問

JNI數(shù)據(jù)類型
基本數(shù)據(jù)
Java基本數(shù)據(jù)類型與JNI數(shù)據(jù)類型的映射關(guān)系

Java類型->JNI類型->C類型

JNI的基本數(shù)據(jù)類型有(左邊是Java絮重,右邊是JNI):

boolean             jboolean
byte                 jbyte
char                 jchar
short                 jshort
int                 jint
long                 jlong
float                 jfloat
double                 jdouble
void                 void

引用類型(對象)

String                 jstring
Object                 jobject

數(shù)組,基本數(shù)據(jù)類型的數(shù)組
byte[]                jByteArray
對象數(shù)組
object[](String[])     

native函數(shù)參數(shù)說明

每個(gè)native函數(shù),都至少有兩個(gè)參數(shù)(JNIEnv*,jclass或者jobject)宦焦。
1)當(dāng)native方法為靜態(tài)方法時(shí):
jclass 代表native方法所屬類的class對象(JniTest.class)咨堤。
2)當(dāng)native方法為非靜態(tài)方法時(shí):
jobject 代表native方法所屬的對象菇篡。
native函數(shù)的頭文件可以自己寫。

關(guān)于屬性與方法的簽名

一一喘、屬性的簽名
屬性的簽名其實(shí)就是屬性的類型的簡稱驱还,對應(yīng)關(guān)系如下:

image.png

尤其注意的是,類的簽名格式就是:

L完整包名;

其中完整包名用 / 代替.
末尾的 ; 不能省略
數(shù)組的簽名就是:

[類型簽名

其中,多為數(shù)組就用多個(gè)[

二议蟆、方法的簽名
獲取方法的簽名比較麻煩一些闷沥,通過下面的方法也可以拿到屬性的簽名。
打開命令行咐容,

javap -s -p 完整類名

我們通過as的terminal工具進(jìn)入到F:\MyApplication\app\build\intermediates\classes\debug>舆逃,然后輸入命令:

 javap -s -p com.example.gyf.GyfJniTest

public class com.example.gyf.GyfJniTest {
  public java.lang.String name;
    descriptor: Ljava/lang/String;
  public static int NUM;
    descriptor: I
  public com.example.gyf.GyfJniTest();
    descriptor: ()V

  public int getAdminName(int);
    descriptor: (I)I

  public static java.lang.String getUUID();
    descriptor: ()Ljava/lang/String;

  public native java.lang.String getNameFromC();
    descriptor: ()Ljava/lang/String;

  public native void getStaticNameFormC();
    descriptor: ()V

  public native int getMethodFromC();
    descriptor: ()I

  public native java.lang.String getStaticMethodFromC();
    descriptor: ()Ljava/lang/String;

  public native long accessConstructor();
    descriptor: ()J

  static {};
    descriptor: ()V
}

其中,descriptor就是我們需要的簽名了戳粒,注意簽名中末尾的分號不能省略颖侄。
方法簽名的規(guī)律就是,括號不可以省略:

(參數(shù)類型簽名)返回值類型簽名

構(gòu)造方法和父類的訪問:
github地址:https://github.com/momoshusheng/baseJni

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末享郊,一起剝皮案震驚了整個(gè)濱河市览祖,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌炊琉,老刑警劉巖展蒂,帶你破解...
    沈念sama閱讀 211,948評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異苔咪,居然都是意外死亡锰悼,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,371評論 3 385
  • 文/潘曉璐 我一進(jìn)店門团赏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來箕般,“玉大人,你說我怎么就攤上這事舔清∷坷铮” “怎么了?”我有些...
    開封第一講書人閱讀 157,490評論 0 348
  • 文/不壞的土叔 我叫張陵体谒,是天一觀的道長杯聚。 經(jīng)常有香客問我,道長抒痒,這世上最難降的妖魔是什么幌绍? 我笑而不...
    開封第一講書人閱讀 56,521評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮故响,結(jié)果婚禮上傀广,老公的妹妹穿的比我還像新娘。我一直安慰自己彩届,他們只是感情好伪冰,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,627評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著惨缆,像睡著了一般糜值。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上坯墨,一...
    開封第一講書人閱讀 49,842評論 1 290
  • 那天寂汇,我揣著相機(jī)與錄音,去河邊找鬼捣染。 笑死骄瓣,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的耍攘。 我是一名探鬼主播榕栏,決...
    沈念sama閱讀 38,997評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蕾各!你這毒婦竟也來了扒磁?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,741評論 0 268
  • 序言:老撾萬榮一對情侶失蹤式曲,失蹤者是張志新(化名)和其女友劉穎妨托,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體吝羞,經(jīng)...
    沈念sama閱讀 44,203評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡兰伤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,534評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了钧排。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片敦腔。...
    茶點(diǎn)故事閱讀 38,673評論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖恨溜,靈堂內(nèi)的尸體忽然破棺而出符衔,到底是詐尸還是另有隱情,我是刑警寧澤糟袁,帶...
    沈念sama閱讀 34,339評論 4 330
  • 正文 年R本政府宣布柏腻,位于F島的核電站,受9級特大地震影響系吭,放射性物質(zhì)發(fā)生泄漏五嫂。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,955評論 3 313
  • 文/蒙蒙 一肯尺、第九天 我趴在偏房一處隱蔽的房頂上張望沃缘。 院中可真熱鬧,春花似錦则吟、人聲如沸槐臀。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,770評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽水慨。三九已至得糜,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間晰洒,已是汗流浹背朝抖。 一陣腳步聲響...
    開封第一講書人閱讀 32,000評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留谍珊,地道東北人治宣。 一個(gè)月前我還...
    沈念sama閱讀 46,394評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像砌滞,于是被迫代替她去往敵國和親侮邀。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,562評論 2 349

推薦閱讀更多精彩內(nèi)容