欢迎访问移动开发之家(rcyd.net),关注移动开发教程。移动开发之家  移动开发问答|  每日更新
页面位置 : > > 内容正文

Android-JNI的简单使用,android-jni使用

来源: 开发者 投稿于  被查看 3746 次 评论:92

Android-JNI的简单使用,android-jni使用


什么是JNI那?
JNI是Java Native Interface的缩写,它提供了若干的API实现了Java和其他语言的通信(主要是C&C++)。从Java1.1开始,JNI标准成为java平台的一部分,它允许Java代码和其他语言写的代码进行交互。JNI一开始是为了本地已编译语言,尤其是C和C++而设计的,但是它并不妨碍你使用其他编程语言,只要调用约定受支持就可以了。使用java与本地已编译的代码交互,通常会丧失平台可移植性。但是,有些情况下这样做是可以接受的,甚至是必须的。例如,使用一些旧的库,与硬件、操作系统进行交互,或者为了提高程序的性能。JNI标准至少要保证本地代码能工作在任何Java 虚拟机环境下。
这是百度百科上面的原话,专家的介绍,大家都懂的。下面有一张关于JNI的知识总结图,更利于大家对JNI的理解
这里写图片描述

使用JNI需要先配置NDK 就像配置SDK一样,至于NDK是怎么去配置的,因为时间有限,就请大家自行去百度,我这里就不多说了。

理论上面的知识就到这里,前人已经替我们总结的非常好了,如何在前人的理论基础上面去实现它,写出第一个自己的JNI项目才是本文想去说的。
OK Come On;


创建一个项目 HelloJni ,为layout创建一个点击事件 onButtonClick
这里写图片描述
然后在Activity中创建本地方法

这里写图片描述

然后就该创建我们的C语言方法了。右击我们的项目app->New->Folder->JNI Folder
这里写图片描述
这样就生成了一个专门用来存放JNI文件的文件夹
这里写图片描述
在jni文件夹中创建一个C语言文件Hello.c
这里写图片描述
Hello.c内部代码
这里写图片描述
然后在jni文件夹中创建一个Android.mk文件如图,用于进行NDK的编译
这里写图片描述
LOCAL_MODULE为编译之后生成的文件名称
LOCAL_SRC_FILES为被编译的文件名称
这里要注意,默认的情况下JNI是不支持 X86和Mips的CUP架构的,所以我们需要手动的去添加支持。
创建一个Application.mk的文件,如图
这里写图片描述
表示支持所有的CPU架构,其实主要就是X86与Mips架构
然后就需要使用NDK去编译项目
打开控制台 cd到该项目的jni文件夹中,使用ndk-build指令(注意我这里是mac os,如果是windows 或者 linux 使用的指令为 ndk-build.cmd)如图所示
这里写图片描述
这一步完成之后,会发现项目里面多了一些东西
这里写图片描述
最后我们需要在Java代码之中去引用这个libs
这里写图片描述

运行代码点击按钮就能简单的实现了一个 Hello JNI 的Toast

源码地址:http://download.csdn.net/detail/u011068996/9061135


站在巨人的肩膀上,我们才能看得更远

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关频道:

用户评论