Android(安卓)开发通过NDK调用JNI,使用opencv做本地c++代码开发配置方法 边缘检测 范例代码

update by 24/1/2015

这篇文章写了一年多了,看到很多朋友在NDK/JNI开发环境的时候还是遇到了很多问题,所以今天抽了个时间,自己重新在ubuntu上配置了一下,更新一下本文中的错误。

并且,我把项目代码放在了github上,可以自己看看: https://github.com/weixsong/libra

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


以前写过两个Android开发配置文档,使用NDK进行JNI开发,这样能够利用以前已经写好的C++代码。

前两篇博客地址:

 http://blog.csdn.net/watkinsong/article/details/8829072

http://blog.csdn.net/watkinsong/article/details/8829235


但是这两篇配置介绍中,多少的有些错误,这里重新整理这些错误以及要注意的问题,作为勘误文。


简介:本系列博客介绍了安卓开发环境的配置,和在安卓开发中,通过JNI调用本地C++代码,使用opencv进行开发处理,本地代码通过NDK进行编译。


参考链接:http://www.cnblogs.com/ldr213/archive/2012/02/20/2359262.html 我最早学习是参考这个链接的,但是教程比较老,而且OPENCV现在都2.4.5的版本了,所以想总结一下分享给需要的朋友。(勘误:上面的连接博客中,提到你的工程的目录必须按照怎么样的目录结构存放,开始我做的时候也是按照他的那种存放方式放工程目录的,但是后来发现最新的NDK以及opencv没有必要这么做,局限性太大,只要你能配置环境把需要的文件找到即可。)


之所以需要使用NDK进行JNI java本地调用的原因是,很多实验室或者公司以前大部分的工作都是利用c/c++进行开发的,如果把这些代码使用java重写是不现实的,所以需要利用NDK调用公司已经存在的大量的c/c++代码。


目前OPENCV已经提供了Android 版本的API,如果你的工程完全是新的, 没有任何需要使用以前c/c++代码,那么还是建议你直接使用opencv Android版本的java API,使用NDK的效率并不一定会提高。本文主要是讲怎么利用NDK调用编译本地的c/c++代码。


请文明转载,声明出处。by watkins.song


有一种方式不需要自己配置所有的Sun JDK, Android SDK以及NDK,Eclipse等设置,使用已经配置好的开发套件就可以进行直接的开发,由NVIDIA开发的开发套件Tegra Android Development Pack能够直接设置好所有的开发环境,而且最新的版本还包含了OPENCV,不想自己配置的朋友可以直接下载这个套件。但是我本人没有尝试过使用这个套件,怎么使用也不明白,所以如果不想自己配置环境的话还是需要自己去看看这个套件的使用。



1. Sun JDK


首先需要安装java开发环境,这里必须使用Sun JDK,不能使用Opencv JDK. 安卓开发不支持Opencv JDK.

JDK下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html

建议下载稳定版本的J2SE.

安装好 Sun JDK后需要按照java JDK的安装方式配置环境变量。

设置JDK系统环境变量:

在环境变量中添加如下内容

JAVA_HOME= C:\Program Files\Java\jdk1.X.XXX
Path=…..; %JAVA_HOME%\bin




2. Android SDK


安装安卓开发用的SDK,可以从  http://developer.android.com/sdk/index.html  这里下载最新的SDK。下载完毕后解压缩到一个不包含空格的目录即可。建议使清晰明了的目录,以后还要用。

建议将SDK安装到独立的文件夹中,文件夹名不要有空格,也不要起中文名字。

Android SDK 不用配置系统环境变量,在Eclipse中创建Android的工程时候或者安装完ADT(Android Development Tools)之后会提示配置Android  SDK 目录。这里只要保证目录名字不包含空格就可以了。


3. Eclipse


下载Eclipse作为开发用的IDE

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

提示:最新发现下载的ADT中包含了最新版本Eclipse,可以不用下载。


4. Android Development Tools(ADT)


下载安卓开发工具包,包含一些常用的开发工具。

也可以直接使用Eclipse在线安装,但下载后再装比较方便,速度快。

下载地址:http://developer.android.com/sdk/eclipse-adt.html 


下载完ADT后,给Eclipse安装ADT组件。

在Eclipse中:菜单Help-->Install new Software




安装ADT时的截图如下:




这个时候会看到两类组件,一类是Develop Tools,还有就是NDT Plugins,NDT Plugins是本地编程编译工具,也就是用来编译本地C++代码的,建议将两组工具都全部安装。

特别说明:如果你需要做本地C++开发的话,一定要把NDT Plugins勾选上。(注释:安装的时候务必选择NDK Plugins)




5. 配置Eclipse


ADT安装完毕,应该可以在Eclipse工具栏和Window菜单上找到Android SDK管理器的图标




点击Preferences开始设置Eclipse的Android开发环境……




设置安卓开发的SDK目录,这里需要将SDK目录指定到刚才我们下载的Android SDK目录的根目录。




在Eclipse中选择Windows->Android SDK Manager,可以管理下载的SDK,也可以下载最新的SDK,用于不同的SDK平台开发。

选择你所需要开发的平台的SDK(我最早下载的那个SDK包含了很多版本的SDK,但是最新下载的最新的SDK,结果只包含了很好的Android 4.3的API,很多都需要自己下载)



  • 8
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 68
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值