首先搭建基于NDK的jni开发环境,再次不在累述,请参考另一篇经验。从官方下载OpenCV4Android SDK 3.0 开发包,并将该包解压。
解压opencv4android 包选择file->import->Android->Existing Android code into workplace
浏览opencv 目录,导入所有工程,注意勾选“Copy projects into workspace”Copy openCV目录下SDK文件夹到工作区中
修改工程Tutorial 1 ->user SDK版本, 根据测试手机设置此版本,设置>=11即可
设置tutrorial 1 工程文件属性,加入opencv library
编译并运行apk, 手机能运行程序,但是会报package not found,这是因为程序依赖的文件没有安装,类似windows平台下找不到dll文件一样,这些依赖包在opencv目录apk目录下,安装对应平台的apk即可,但是这样动态链接给安装带来不便,以下介绍静态链接,把所需文件打包在一起。幸运的是,这一步在oepncv 目录下产生库文件opencv library - 3.0.0.jar
设置工程属性,Java build path->Libraries->Add jars,执行了这一步操作,工程文件中会出现opencv library
修改AndroidMainifest.xml文件,加入
在Jni目录下 增加Application.mk文件,加入内容为,#APP_STL := gnustl_static#APP_CPPFLAGS := -frtti –fexceptionsAPP_ABI := armeabi-v7a
同时修改Android.mk文件为:此配置选项是设置Opencv头文件路径,库文件连接方式,编译源文件及生成的库文件。LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)OPENCV_LIB_TYPE:=STATICOPENCV_INSTALL_MODULES:=oninclude C:\Users\admin\workspace\sdk\native\jni\OpenCV.mkLOCAL_MODULE := HelloLOCAL_LDLIBS += -llog -ldlLOCAL_SRC_FILES := Hello.cppinclude $(BUILD_SHARED_LIBRARY)
修改hello.cpp文件//加入头文件#include
向手机中丢入一个图片文件,路径为/storage/emulated/0/1.jpg编译运行,have fun.在应用程序中点击button, 将文件/storage/emulated/0/out.txt取出,查看文件内容为: Hello,image size=1920 x 1200这说明opencv已经正确加载,并执行opencv库中函数,另外,此时opencv是静态编译到应用程序中的。如对读者有帮助,欢迎投宝贵一票,谢谢!