1 / 28
文档名称:

jni的使用(详细).doc

格式:doc   大小:1,189KB   页数:28页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

jni的使用(详细).doc

上传人:wzt520728 2018/6/20 文件大小:1.16 MB

下载得到文件列表

jni的使用(详细).doc

文档介绍

文档介绍:搭建JNI的开发环境
具体步骤: 双击打开。
安装:android-ndk
下载地址在Android官网,如下图:
下载后解压就可以用了,它里面的文档需要经常去查看使用:
2、安装Cygwin
安装时只安装这两个即可:devel 目录里面存放的是linux系统与编译相关的插件集合.
shell 目录里面存放的是linux系统的脚本相关的插件集合.
配置Linux的环境变量
既然Cygwin就是一个Linux运行环境,那么一定也可以配置环境变量,因为ndk中的命令要在Linux下运行的话,首先要进入到ndk命令所在目录才能执行,这样很麻类,这时就可以配置Linux的环境变量了:找到:E:\cygwin\etc目录下的profile文件(没扩展名的),用记事本打开,找到第32行:
PATH="/usr/local/bin:/usr/bin:${PATH}" ,首先要清楚在Linux下的目录结构是怎么样的,用cd .. 一直返回到Linux的根目录, 然后输入ls命令,可以看到有一个sygdrive目录,用cd cygdrive 进入该目录,这时可以看到:c d e f g ,这些就是硬盘的盘符,所以在Windows系统下的
E:\android-ndk-r7b\目录,在Linux中的表示为:/cygdrive/e/android-ndk-r7b,多个路径之间用:号分隔,配好的PATH为:PATH="/cygdrive/e/android-ndk-r7b:/usr/local/bin:/usr/bin:${PATH}"
Cygwin中的命令使:

3、安装CDT:
插件安装好后会多出一个C/C++的视频:
写一个ndkHelloWord的步骤:
创建一个android工程
JAVA代码中写声明native 方法

创建jni目录,编写c代码,方法名字要对应
查看Java中对JNI的规范:
C语言的jobject是void*的别名
C语言string是又jobject的别名
在JNINativeInterface结构体里定义了很多的函数指针:
通过函数指针就可以调用这些方法。
怎么拿这个JNINativeInterface结果体呢?
通过结构体指针就能拿到结构体: *JNIEnv

这里的 JNIEnv* 是一个结构体指针的指针,所以通过*env拿到的就是JNIEnv,然后再*JNIEnv就拿到了JNINativeInterface结构体
写成一个语句就是: *(*env) == JNINativeInterface结构体

编译C文件需要在项目的根目录下执行编译命令
-build 命令,而这个命令需要运行在Linux的环境下,所以需要启动Cygwin程序,在Cygwin的命令窗口中进入到安卓项目的根目录,然后执行:/cygdrive/e/android-ndk-r7b/ndk-build 命令,如下图:
这里出了一个错误,第一句:Android NDK: Your APP_BUILD_SCRIPT points to an unknown file: ./jni/ 说指向了一个未知的文件
所以需要把一个叫:à新建一个文件,输入文件名为:
,如要编译的是哪个C文件呀,编译出来的文件起个什么名字呀。
5、
?可以查找帮助文档,如下图:
,然后指定交叉编译后的文件名与指定要编译哪个C文件。
接着再到Cygwin程序中执行/cygdrive/e/android-ndk-r7b/ndk-build 命令,这时会报错这么一个错误: