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

JNI的调用流程和环境搭建

一、JNI环境搭建

Ø 基本环境

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

Ø 工具

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

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

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

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

3. CDTEcilipse中的插件,用于高亮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调用CDemo

【调用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. 演示效果。


资源下载链接:

http://download.csdn.net/detail/xueyingpiaoran/5209928

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值