OpenCV for Android Studio 学习笔记(一):NDK及OpenCV的安装配置
来源:互联网 发布:java stringbuffer类 编辑:程序博客网 时间:2024/05/22 17:00
最近项目中有使用OpenCV的要求,这对于还没有接触过NDK的我来说真是有点儿难度。
所以先从NDK的配置入手,然后又配置OpenCV,并尝试使用OpenCV来运行一些小例子。
终于步入正轨了,特来做个小总结。
一、NDK
其实,Android Studio中NDK的配置是很简单的。不需要像Eclipse中那样复杂,不必使用cygwin这一类工具来模拟Linux环境。
只需:
File ——> Project Structure——>SDK Location 最下方的选项就是NDK。只有在这里下载会自动配置各种内容。(注意,此过程有连接外网的需求,应该是在下载的最后部分)
此后,按照
http://wiki.jikexueyuan.com/project/android-actual-combat-skills/ndk-development-in-android-studio.html
介绍的关于 头文件 、 Native代码 、.so文件的内容都能完成。
注意,Android Studio 默认是没有.mk文件的。(关于.mk文件的内容还了解的不多,以后补充)如果有需求要使用自己的.mk文件,就要在自己动手修改buile.gradle文件,更改jnilibs目录。
在android {
}
内部增加一下代码:
sourceSets.main.jni.srcDirs = []//禁止自带的ndk功能sourceSets.main.jniLibs.srcDirs = ['src/main/libs','src/main/jniLibs']//重定向so目录为src/main/libs和src/main/jniLibs,原来为src/main/jniLibstask ndkBuild(type: Exec, description: 'Compile JNI source with NDK') { Properties properties = new Properties() properties.load(project.rootProject.file('local.properties').newDataInputStream()) def ndkDir = properties.getProperty('ndk.dir') if (org.apache.tools.ant.taskdefs.condition.Os.isFamily(org.apache.tools.ant.taskdefs.condition.Os.FAMILY_WINDOWS)) { commandLine "$ndkDir/ndk-build.cmd", '-C', file('src/main/jni').absolutePath } else { commandLine "$ndkDir/ndk-build", '-C', file('src/main/jni').absolutePath }}tasks.withType(JavaCompile) { compileTask -> compileTask.dependsOn ndkBuild}task ndkClean(type: Exec, description: 'Clean NDK Binaries') { Properties properties = new Properties() properties.load(project.rootProject.file('local.properties').newDataInputStream()) def ndkDir = properties.getProperty('ndk.dir') if (org.apache.tools.ant.taskdefs.condition.Os.isFamily(org.apache.tools.ant.taskdefs.condition.Os.FAMILY_WINDOWS)) { commandLine "$ndkDir/ndk-build.cmd",'clean', '-C', file('src/main/jni').absolutePath } else { commandLine "$ndkDir/ndk-build",'clean', '-C', file('src/main/jni').absolutePath }}clean.dependsOn 'ndkClean'
二、OpenCV
OpenCV的使用方式有很多种,随着版本的更新还出现了一种使用Manager进行中间衔接的方式,但这种方式要额外安装apk(用户打开需要OpenCV的功能时,会自动获得提醒去Google Play Store下载),不是很方便,特别是国内环境。
我一般是这样初始化OpenCV
if (!OpenCVLoader.initDebug()) { Log.d(TAG, "Internal OpenCV library not found. Using OpenCV Manager for initialization"); //用这种方式初始化需要额外安装apk(监测到没有安装会提示去google play 下载) OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_3_0_0, this, mLoaderCallback);} else { //这种方式使用本地lib Log.d(TAG, "OpenCV library found inside package. Using it!"); mLoaderCallback.onManagerConnected(LoaderCallbackInterface.SUCCESS);}
具体的关于OpenCV的使用可以参考:
http://blog.csdn.net/sbsujjbcy/article/details/49520791
- OpenCV for Android Studio 学习笔记(一):NDK及OpenCV的安装配置
- opencv学习笔记(一)-软件安装及环境配置
- Android Studio中配置及使用OpenCV示例(一)
- python+opencv学习笔记(一)python+numpy+scipy+opencv+contrib的安装与配置
- OPENCV学习笔记(一):安装OpenCV:OpenCV 3.0、OpenCV 2.4.8、OpenCV 2.4.9 +VS 开发环境配置
- Android studio 下OpenCV,NDK,配置
- 【OpenCV学习笔记】一、OpenCV介绍与安装配置
- Android Studio NDK环境配置(opencv)以及使用
- 笔记-Android Studio配置OpenCV
- opencv学习笔记(一)安装与配置问题
- android studio 配置 opencv for android
- OpenCV学习笔记(0x00) OpenCV的安装与配置
- opencv学习笔记一(配置)
- OpenCV学习笔记一:Visual Studio 2013 + OpenCV 2.4.8 配置 - Visual Image
- OpenCV学习笔记(一)——Linux下的OpenCV配置
- Opencv2.4.7+VS2010+win10安装配置(OpenCv 学习笔记一)
- OpenCV学习笔记(五)—— OpenCV for Android剔除OpenCV Manager依赖
- openCV学习笔记(一)---初始openCV
- 栈的数组实现
- Apache Thrift之java入门例子
- 跟我一起写 Makefile(十三)
- 密码加密
- 前端移动端页面开发
- OpenCV for Android Studio 学习笔记(一):NDK及OpenCV的安装配置
- noetpad++ 使用svn
- .NET MVC Iframe 'X-Frame-Options' to 'SAMEORIGIN' 解决办法
- SSH框架整合开发详解(个人笔记)
- iOS 陀螺仪 加速计
- Windows系统版本判定那些事儿
- 缩略图、水印、验证码
- Eclipse对工作空间中的项目进行分组
- 【常用工具类】解析工具类