您的位置:首页 > 移动开发 > Android开发

Android-JNI环境搭建和调用流程+小demo

2013-10-25 14:36 447 查看
JNI的调用流程和环境搭建

原创:/article/8042027.html

一、JNI环境搭建

Ø 基本环境

windowsXP系统; Eclipse开发工具; Java编程语言

Ø 工具

1. NDK:交叉编译的工具。用于在windows环境下模拟linux环境,编译用于linux环境下的c库。

下载地址:http://developer.android.com/tools/sdk/ndk/index.html

下载android-ndk-r8e-windows-x86.zip 包。

2. Cgywin :windows下模拟linux系统环境的模拟器。用于在windows下模拟linux系统。

下载地址:http://cygwin.com/setup.html

3. CDT:Ecilipse中的插件,用于高亮C/C++代码

下载地址:http://www.eclipse.org/cdt/

Ø 搭建流程

1. 解压NDK工具包

使用解压工具把android-ndk-r8e-windows-x86.zip包中解压出来的android-ndk-r7b文件夹放到C根目录下。

2. 安装Cgywin

① 双击

开始安装。

② 进入下图界面的时候,选择第一项则会从网络上下载ndk的安装包安装该工具,选择第三项的话选择则从本地已准备好的安装包中安装该工具。



③ 进入下图界面的时候,选择的安装目录不要包含空格或者中文,然后下一步。



④ 进入下图界面,选择安装工具的网络路径,然后下一步。



⑤ 进入下图界面的时候,选择要安装的包,根据具体情况选择。本项目中把Devel和Shell选择为install,然后下一步。



⑥ 进入下图界面表示安装成功,点击完成结束安装。



3. 安装CDT插件

Eclipse菜单中选择help->Install New Software->Add添加CDT的本地包或者网络安装地址安装CDT插件。

Ø 配置环境变量

1. 进入cgywin的安装目录,找到etc目录下的profile文件。

2. 打开profile文件,找到第32行的PATH

3. 加上“/cygdrive/”+“android-ndk-r7b文件夹所在的路径”+“:”

Eg:我的android-ndk-r7b文件夹在C盘的android-ndk-r7b-windows文件夹中,则PATH配置路径为:

PATH="/usr/local/bin:/usr/bin:/cygdrive/c/android-ndk-r7b-windows/android-ndk-r7b/:${PATH}"

Ø 验证安装是否正确

1. 双击桌面上的

打开cygwin终端。

2. 输入命令行make -v 出现下图界面表示cygwin安装成功



二、JNI调用流程

Ø 在java代码中定义一个native的方法

Ø 使用根据方法签名,在c文件中实现这个方法

Ø 编写mk文件

Ø 在cgywin终端进入工程的/bin/classes/目录下,然后使用ndk-build命令,编译动态库

Ø 在java代码中加载c文件生成的动态库

Ø 调用本地方法

三、JNI调用C的Demo

【调用c中的代码,返回” H ello from c!”字符串】

1. 创建NDKDemo工程。



2. 在java代码中定义一个native的方法。



3. 使用javah创建方法签名。根据方法签名,在c文件中实现这个方法。

① 进入工程的classes目录下,执行 “javah
包名.类名” 命令。



② 得到方法签名头文件。



③ 在工程中创建 jni 目录,把得到的方法签名的文件放到该目录下。创建C文件。



④ 在C中使用” ”把头文件引入到项目中来。并使用头文件中的方法签名来作为c中的方法的名字,编写C代码。



4. 在jni目录下创建Android.mk文件,编写mk文件。



5. 在cgywin终端进入工程的/bin/classes/目录下,然后使用ndk-build命令,编译动态库。



6. 在java代码中加载c文件生成的动态库。

① 刷新项目。出现如下图目录:可知库的名字为“Hello”



② 在java代码中加载c库。



7. 调用本地方法。



8. 演示效果。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: