android/c++ opencv 攻坚篇(一) ndk运行环境搭建

        因公司业务要求,需要涉及到计算机视觉之类的知识,本来本屌身为android界学不动的那类人是不愿意的,无奈被公司领导万般摧残之下,本屌只能硬着头皮搜集资料,敲代码,实验,论证,最终搞定项目。出于增强记忆和乐于分享的目的,在此记录下本技术完整流程!

首先,亮一下本屌的开发工具启动界面,本篇就算正式开始了!

android/c++ opencv 攻坚篇(一) ndk运行环境搭建_第1张图片

一、android studio配置

1.首先创建一个没有什么卵用的空项目

android/c++ opencv 攻坚篇(一) ndk运行环境搭建_第2张图片

2.首先确保,你的android studio中安装了sdk 和ndk 以及cmake

android/c++ opencv 攻坚篇(一) ndk运行环境搭建_第3张图片

3.按住快捷键Ctrl+Shift+Alt+S,检查NDK是否配置成功

android/c++ opencv 攻坚篇(一) ndk运行环境搭建_第4张图片

4.然后去opencv官网下载(这里我使用的版本是3.4.6,各位随意,大同小异):https://opencv.org/releases/page/2/

把windows和android版本都下载下来,windows版本后面有用,做重点讲解

两种都下载完成后,为以下内容

android/c++ opencv 攻坚篇(一) ndk运行环境搭建_第5张图片

解压zip

复制../OpenCV-android-sdk/sdk/native/libs/libopencv_java3.so到项目下../opencvdemo/app/src/main/jniLibs/armeabi-v7a/

复制../OpenCV-android-sdk/sdk/native/jni/include下文件夹到项目下../opencvdemo/app/src/main/cpp/include/

android/c++ opencv 攻坚篇(一) ndk运行环境搭建_第6张图片

在项目../opencvdemo/app/下创建文件CMakeLists.txt,加入如下代码:

cmake_minimum_required(VERSION 3.4.1)

add_library(
           native-lib
           SHARED
           src/main/cpp/native-lib.cpp)

include_directories(src/main/cpp/include)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -L${CMAKE_SOURCE_DIR}/src/main/jniLibs/${ANDROID_ABI}")

target_link_libraries( native-lib log opencv_java3 android )

在项目../opencvdemo/app/build.gradle文件中,配置如下

android {
    ....

    defaultConfig {
        ....

        externalNativeBuild {
            cmake {
                cppFlags ""
                abiFilters "armeabi-v7a"
                arguments '-DANDROID_STL=gnustl_static'
            }
        }

        ndk {
            abiFilters 'armeabi-v7a'
        }
    }


    externalNativeBuild {
        cmake {
            path "CMakeLists.txt"
        }
    }
}

在项目../opencvdemo/app/src/main/cpp/下创建cpp文件,取名native-lib.cpp,加入如下代码

#include 
#include 
#include 


extern "C"
JNIEXPORT void JNICALL
Java_com_liera_opencvdemo_MainActivity_matSource(JNIEnv *env, jobject instance) {

}

到此,opencv配置基本结束,下一章节我们讲如何配置windows的opencv环境。(注:因毕竟android上开发opencv实时预览不太方便,所以我们采用在windows上开发运行项目,运行调试通过后一并移植到android项目中)。

本章完。

你可能感兴趣的:(android,windows,c++,opencv,计算机视觉,深度学习,android)