JNI——Android 与 c 的交互(1)

          在一起学Android的时候老师没讲JN,甚至连ndk都没有讲。只是提了一下,老师说,一百个做Android的里面只会有一个用到JNI,这个用jni的同学也是在项目的个别功能中用到了一点点,所以就没给我们讲。没想到我前几天在项目中用到了,于是就整理一下。第一次写博客,好紧张,作为一个程序员,作文一向不及格的程序员,写出来大家不要见笑。

          这次博客我会分几篇来写,同时我会附带上我的代码。

          首先呢,我们要了解一下c对c一点都不了解的同学,自己去找个视频、书什么的看一下就好了。不需要懂太多,了解一下就可以了。这里给大家介绍一个c开发的工具,如果需要可以下载下来用。WY_DEVCPP_5B1107.zip

        闲话不多说,我们直接来干货。

        安卓开发应用层的代码是用java写的,而底层的代码使用c/c++写的,有很多时候我们在应用层实现不了的功能都需要在用c来写。或者直接调用人家写好的.so文件。那就要用到我们说的jni。我这里就先介绍一下直接用c写,然后再给大家介绍怎么用.so文件。

       android中java和c互调分为以下几步:

       1,  安装配置ndk,这个比较简单,我觉得比配置jdk还要简单。

    project->prefenences->Android->ndk->Browse->选择自己的ndk目录->Apply->ok



创建一个JNI项目的步骤
  1,创建一个Android工程
  2,在java代码中声明一个native方法
  3,在java代码中调用该方法
  4,在Android工程的根目录下建一个文件夹jni,编写c代码文件名要对应
  5,编写Android.mk文件,(复制出来,然后修改就可以了)
  6,java代码load动态库,调用native方法
  7,NDK编译生成动态链接库编译命令,ndk-build

步骤写的都很清晰,而且我还附带了代码,这里就不多的啰嗦了。第7步,我在简单的提一下。

在项目的根目录,按住shift键,反键,选择“在此处打开命令窗口(w)”,打开命令窗口(黑窗口),然后输入ndk-build

然后如果出现.so那就是可以了。




看完博客还是不太明白,不要紧,可以下载源码看看。

ndk简便开发流程



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章