亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

使用java語言與c++語言通信

標簽:
Java C++

第一步,配置java的环境,jdk和jre,这里就不说了
第二步,配置NDK,具体如下图(作者使用NDK版本为R10e)
配置NDK
将NDK Location设定为自己下载的NDK地址就行
第三步,加入原生支持:右键创建的项目,Android Tools>>Add Native Support
这里写图片描述
这里大家可以自己命名,点击确定之后,再看我们的项目文件,会生成一个jni文件夹,里边有一个HelloJNI.cpp文件和.mk文件,(HelloJNI为作者上一步的命名),打开Android.mk文件,会发现有一个LOCAL_SRC_FILES := HelloJNI.cpp  这就表明我们的HelloJNI的cpp文件加进来了
第四步,接下来我们可以在MainActivity.java的佟目录下建立一个CHello类,
下面是一些简单代码:

public class CHello {
    public native String getStr();
    public static native int getNum();
    //加载本机库
    static{ //静态模块,第一次执行的时候加载
        System.loadLibrary("HelloJNI");
    }
}

当java里没有native关键字的时候,需要在声明后加{}
如:public  String getStr(){};

第五步,接下来 我们要用jni方法生成CHello对应的com_example_hellojni_CHello.h文件
ctrl+r ,输入cmd ,打开dos系统,进入项目的包目录
这里写图片描述
接下来 用javah -jni com.example.hellojni.CHello指令生成CHello.java对应的cpp文件  复制进jni文件夹(当然也可以直接生成的时候保存到jni文件夹,这里就不说了)
这里写图片描述
第六步,打开com_example_hellojni_CHello.h 将以下代码复制进HelloJNI.cpp中(cpp文件中记得添加对应的头文件)

JNIEXPORT jstring JNICALL Java_com_example_hellojni_CHello_getStr
  (JNIEnv *, jobject);

JNIEXPORT jint JNICALL Java_com_example_hellojni_CHello_getNum
  (JNIEnv *, jclass);

然后如图修改代码为:
这里写图片描述
第七步,在MainActivity.java文件中定义一个对象,输出

        CHello h=new CHello();
        System.out.println(h.getStr());

这里写图片描述
在LogCat中有这样的输出结果表示通信成功

Demo下载地址:http://download.csdn.net/download/doubleicefire/10050280
或者baidu链接: https://pan.baidu.com/s/1dFAi1Z7 密码: tvbr

原文出处

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消