JNI工程Hello World!

1. 新建Android工程(暂定工程名为A),通过new->others将工程转化为可以编译C代码的工程,如下图,下一步中选中要转换的工程和编译工程中C代码的编译器类型(我已安装完成Cygwin,选CygwinGCC)。


2. jni的示例代码拷贝到工程A的根目录中(jni目录中包含Android.mkhello-jni两个文件(在NDK的示例工程HelloJni代码中可以找到),如下图)。


3. 配置C代码编译器

在工程上右键-> properties->C/C++build设置如下图,其中D:\android\android\android-ndk-r9\ndk-build为我的ndk(可以到官网上去下载)的存放目录,点击Apply应用配置的设置。


C/C++General  -> Pathsand Symbols -> GNU CInclude目录设置如下图,我的为D:\android\android\android-ndk-r9\platforms\android-18\arch-arm\usr\include,点击Apply应用配置的设置。


4. C代码在Java中的使用:、

使用方法一:

Java代码的MainActivity类中添加声明

static{

       System.loadLibrary("hello-jni");

   }

   public native String  stringFromJNI();

Java代码中即可以使用C代码的函数,代码如下:

textView= (TextView)findViewById(R.id.showText);

textView.setText(stringFromJNI());

注意:函数名为:

jstring

Java_com_ch_candelete_MainActivity_stringFromJNI(JNIEnv* env,

                                               jobject thiz )

com_ch_candelete为包路径,MainActivity为使用C代码的类,命名不一致程序将无法运行。

使用方法二:

新建包com_ch_tools,包中新建类CCode,将代码

static{

       System.loadLibrary("hello-jni");

   }

   public native String  stringFromJNI();

放到CCode类中。

在Java代码中定义CCode对象cCode,使用代码如下:

cCode = new CCode();
textView.setText(cCode.stringFromJNI());

注意:

C代码中的接口函数名要更改为:

jstring
Java_com_ch_tools_CCode_stringFromJNI( JNIEnv* env,
                                                  jobject thiz )

5. 参考资料:

http://blog.csdn.net/wuleihenbang/article/details/12680117

完成这个项目时,遇到问题即到网上查找原因,由于无法说清来源,即不再列出。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值