JNI基礎(chǔ)-基本數(shù)據(jù)類型、簽名手趣、常量指針晌该、指針常量

1. JNIEnv里面常用的方法
2. JNIEnv里面基本數(shù)據(jù)類型

jstring : java String
jint : java int
jfloat : java float
jdouble : java double
jobj : java object
jintArray : java int []

3. 回收

如 字符串的回收: (*env)->ReleaseStringUTFChars(env,j_uuid,c_uuid);
pbulic Point test (int x, float y) : (IF)Ljava/awt/Point;
String: Ljava/Lang/String

Object [ ] : [L全類名;

4. 常用簽名 方法的簽名 (參數(shù))返回值

命令: javap -p -s com.amn.JniSimple

5.常量指針

常量變量: 被常量修飾的變量肥荔,不能再次被賦值(和java 差不多)const 關(guān)鍵字修飾
如:const int number = 100;
常量指針:關(guān)鍵字const 在指針之前,指針的地址可以修改朝群,指針指向的值不能修改崖堤。

    int num1 = 100;
    int num2 = 200;
    const int * n_p = &num1;
    n_p = &num2;
注: *n_p =300郑原;這樣修改指針地址上的內(nèi)容是不能修改的,n_p=&num2是可以的
6.指針常量:

指針常量: 指針在前,關(guān)鍵字const在后琼掠。可以修改內(nèi)容但是不能修改地址
如:

    int num1 = 100;
    int num2 = 200;

    int * const n_p = &num1;
    *n_p = 300;(可以修改地址上的內(nèi)容)
    //n_p = &num2;(不能修改地址)
7.Native 層構(gòu)建 java對(duì)象

1.通過(guò)全類名獲取jclass:jclass point_clazz = (env)->FindClass(env, "com/amn/Point");
2.獲取構(gòu)造函數(shù) jmethodID : jmethodID j_md = (
env)->GetMethodID(env,point_clazz,"<init>","(II)V");
3.構(gòu)建java層的Point 對(duì)象 : jobject point=(*env)->NewObject(env, point_clazz, j_md,10,20);



JNIEXPORT jobject JNICALL java_com_amn_JniSimple_createPoint
(JNIEnv *env, jclass jclz){


    //獲取Point 的class  FindClass(env,"全類名") 注: 全類名要反斜杠
    jclass point_clazz = (*env)->FindClass(env, "com/amn/Point");

    //構(gòu)建函數(shù)id    jmethodID j_md = (*env)->GetMethodID(env,point_clazz,"方法名","簽名");
    jmethodID j_md = (*env)->GetMethodID(env,point_clazz,"<init>","(II)V");

    //構(gòu)建java層的Point 對(duì)象 (*env)->NewObject(env, "構(gòu)建對(duì)象的class","構(gòu)造函數(shù)的id",函數(shù)參數(shù))
    jobject point=(*env)->NewObject(env, point_clazz, j_md,10,20);

    return point;
}







package com.amn;
public class Point {
    
    private int x;
    private int y;
    
    public Point(int x, int y) {
        this.x=x;
        this.y=y;
    }
    
    public int getX() {
        return x;
    }
    
    
    public int getY() {
        
        return y;
    }
}



package com.amn;

import java.util.UUID;

public class JniSimple {
    
    static {
        System.load("D:/VisualStudio/work_place/NDK_02/x64/Debug/NDK_02.dll");
    }

    public static void main(String[] args) {

//      callStaticMethod();
    Point point=createPoint();
    
    System.out.println(point.getX());
}
    
    
    private native static Point createPoint();
    
    private native static void callStaticMethod();
    
    public static String getUUID() {
        
        return UUID.randomUUID().toString();
    }
    
    


}


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末救拉,一起剝皮案震驚了整個(gè)濱河市氏堤,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌慢蜓,老刑警劉巖亚再,帶你破解...
    沈念sama閱讀 218,204評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異晨抡,居然都是意外死亡氛悬,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門耘柱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)如捅,“玉大人,你說(shuō)我怎么就攤上這事调煎【登玻” “怎么了?”我有些...
    開封第一講書人閱讀 164,548評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵士袄,是天一觀的道長(zhǎng)悲关。 經(jīng)常有香客問(wèn)我,道長(zhǎng)窖剑,這世上最難降的妖魔是什么坚洽? 我笑而不...
    開封第一講書人閱讀 58,657評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮西土,結(jié)果婚禮上讶舰,老公的妹妹穿的比我還像新娘。我一直安慰自己需了,他們只是感情好跳昼,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,689評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著肋乍,像睡著了一般鹅颊。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上墓造,一...
    開封第一講書人閱讀 51,554評(píng)論 1 305
  • 那天堪伍,我揣著相機(jī)與錄音锚烦,去河邊找鬼。 笑死帝雇,一個(gè)胖子當(dāng)著我的面吹牛涮俄,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播尸闸,決...
    沈念sama閱讀 40,302評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼彻亲,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了吮廉?” 一聲冷哼從身側(cè)響起苞尝,我...
    開封第一講書人閱讀 39,216評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎宦芦,沒想到半個(gè)月后宙址,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,661評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡调卑,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,851評(píng)論 3 336
  • 正文 我和宋清朗相戀三年曼氛,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片令野。...
    茶點(diǎn)故事閱讀 39,977評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖徽级,靈堂內(nèi)的尸體忽然破棺而出气破,到底是詐尸還是另有隱情,我是刑警寧澤餐抢,帶...
    沈念sama閱讀 35,697評(píng)論 5 347
  • 正文 年R本政府宣布现使,位于F島的核電站,受9級(jí)特大地震影響旷痕,放射性物質(zhì)發(fā)生泄漏碳锈。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,306評(píng)論 3 330
  • 文/蒙蒙 一欺抗、第九天 我趴在偏房一處隱蔽的房頂上張望售碳。 院中可真熱鬧,春花似錦绞呈、人聲如沸贸人。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至圾亏,卻和暖如春十拣,著一層夾襖步出監(jiān)牢的瞬間封拧,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工夭问, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留泽西,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,138評(píng)論 3 370
  • 正文 我出身青樓甲喝,卻偏偏與公主長(zhǎng)得像尝苇,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子埠胖,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,927評(píng)論 2 355

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