Android NDK项目的建立与调试 之 OpenCV开发

文章标签: android-教程,android
2014-10-22 17:23:02     35 人阅读    


  下面我们介绍一下Android NDK的工程该怎么建立。以openCV为开发例子。
  首先,我介绍一些一些关键词
    jni文件夹: 这是ndk工程中放C/C++代码的地方。
    Android.mk:这是ndk在编译C/C++代码在生成库的时候该怎么生成,以及源文件的依赖关系,就相当于makefile一样的作用。每个代码子目录中都包含了一个Android.mk,否则它不会生成。
    Application.mk: 这是ndk在编译C++代码的时候的全局设置,比如设置是否分别生成多种CPU的库啊,什么的。具体参数可以参考ndk目录中的application-mk.html。
一、下载OpenCV for Android
  从 http://opencv.org/downloads.html 中下载openCV,解压后的根目录假设是 OpenCV-android-sdk。 注意这里说的根目录是指存放着apk、doc、samples、sdk等文件夹的目录,表多了一层目录啦!
二、导入OpenCV库项目到Eclipse workspace。
  这个项目是库项目,里面提供了一些java类,是opencv例子程序的依赖库项目。
  在菜单 File->Import选择Android项的Existing Android Code Into Workspace,然后单击Next
  在弹出的Import对话框中,设置Root Directory为  openCV根目录下的sdk/java路径。比如我的是 D:\ProgramFilesProtable\OpenCV-android-sdk\sdk\java
  选中copy projects into workspace.
三、导入OpenCV例子到Eclipse workspace。
  类似第二步从opencv根目录下的samples文件夹中选择一个例子导入。
  导入之后,会发现很多错误。
  在Eclipse的Java视图里的Package Explorer中选择 例子项目右键点属性。
    在 Java Build Path 选项中的 Projects选项增加依赖项目 OpenCV Library项目。
    在 C/C++ General -> Paths and Symbols中的 Includes -> GNU C和GNU C++项中,修改最后那个与OpenCV有关的路径,为
      D:/ProgramFilesProtable/OpenCV-android-sdk/sdk/native/jni/include 这样类似的路径。 前面那部分修改为你的OpenCV路径。
  在 工程的 jni -> Android.mk中 修改 include ../../native/jni/OpenCV.mk为
      include D:/ProgramFilesProtable/OpenCV-android-sdk/sdk/native/jni/OpenCV.mk 这样类似的路径。前面那部分修改为你的OpenCV路径。
  以上的有关openCV SDK路径的,如果需要建立于具体电脑无关的路径,那就把OpenCV的sdk文件夹复制到你的workspace中,然后利用相对路径来修改。
  这样修改完成之后,这个例子就完整的编译成功了!
四、不利用导入 完全新建一个OpenCV的例子程序
  首先,我们新建一个 face-detection的普通android工程。
  然后,把各种资源文件以及java源文件和AndroidManifest.xml 从上面导入的工程拷贝过去。并删除本来的多余的资源文件文件。
  下面这一步是最重要的,相比一些老的教程要简便很多,因为ADT变强大了。
  在PackageExplorer右击刚才新建的工程,找到Android Tolls -> Add Native Support。 然后会弹出你要新建什么动态链接库,这个随便填,待会我们会改。
  加了之后,你会发现,工程多了一个jni文件夹。
  把jni里的文件都删除,然后复制刚才导入的项目的jni下面的文件到该工程。
  然后,在工程属性 -> C/C++ General -> Paths and Symbols -> C,C++里添加依赖目录
    D:/ProgramFilesProtable/OpenCV-android-sdk/sdk/native/jni/include 这样类似的路径。 前面那部分修改为你的OpenCV路径。
  现在编译一下就会发现,完全没有错误,而且CDT的代码提示也不会一片红色的错误了。


原文地址:http://www.itmmd.com/201410/56.html
该文章由 萌萌的IT人 整理发布,转载须标明出处。

Android 百度地图 Overlay不会自动刷新的问题   上一篇
下一篇  Android 教程-在线程中更新UI 线程的四种方法

精彩回复
发表评论
姓名:       

《程序员app》专门为程序员量身定做!