码迷,mamicode.com
首页 > 移动开发 > 详细

Ubuntu+IntelliJ IDEA+Android 配置NDK环境+openCV

时间:2017-09-28 13:12:57      阅读:1503      评论:0      收藏:0      [点我收藏+]

标签:htm   intellij   archive   tool   abi   blank   项目   移植   输入   

最近需要将Python人证对比模型移植安卓端.安卓端需要使用openCV简单的人像提取处理.在配置openCV前首先需要配置NDK环境.

NDK的介绍(http://www.cnblogs.com/leaven/archive/2010/05/27/1744855.html)

一 NDK在Ubuntu的配置

参考: http://blog.csdn.net/jq_ak47/article/details/52349189

二 NDK在IntelliJ IDEA中的配置

参考: http://blog.csdn.net/yipatshi/article/details/54585049

三 NDK开发实例

参考: http://www.cnblogs.com/xiaoxiaoqingyi/p/6524165.html

在main/java下创建创建一个NDKUtils.Java类:

public class NDKUtils {
    public native String invokeCmethod();

    static {
        System.loadLibrary("NDKUtils");
    }
}

右键选择 External Tools ---> javah

会在app目录下生成jni目录和目录内一个com_lemon_demo_utils_NDKUtils.h文件

复制.h 文件修改后缀名为 .c (该文件就是C 语言的实现文件)

修改com_lemon_demo_utils_NDKUtils.c内容:

JNIEXPORT jstring JNICALL Java_com_lemon_demo_utils_NDKUtils_jniInit
  (JNIEnv *env, jobject obj){
                       return (*env)->NewStringUTF(env,"NDK 获取Native 字符串");
                       }

 

将jni目录拷贝至main/java目录下.

在jni目录下新建Android.mk和Application.mk:

Android.mk:

LOCAL_PATH:=$(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := NDKUtils
LOCAL_SRC_FILES := com_lemon_demo_utils_NDKUtils.c
include $(BUILD_SHARED_LIBRARY)

Application.mk:

APP_PLATFORM := android-23
APP_ABI := armeabi

在IntelliJ IDEA的命令窗口(Terminal)执行:

cd app/src/main/

继续输入:

ndk-build

该命令是编译C文件,然后生成 .so 文件,生成在 app\src\main\libs 目录下。

完成后会在main目录下生成libs和obj两个目录.

配置build.gradle 文件,在android {}中添加:

    sourceSets{
        main{
            jni.srcDirs = [] // disable automatic ndk-build call, which ignore our Android.mk
            jniLibs.srcDir ‘src/main/libs‘
        }
    }

在MainActivity中使用:

package com.lemoncome.opencvdemo;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;

public class MainOpencvActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main_opencv);

        NDKUtils ndk = new NDKUtils();

        TextView text = (TextView) findViewById(R.id.tv);
        text.setText(ndk.invokeCmethod());

    }
}

运行程序会输出字符串:   NDK 获取Native 字符串 

以上测试成功.

 

四 Android+openCV

首先下载openCV包,地址:http://opencv.org/

最新的3.3,我下载了3.2

opencv配置参考: http://www.cnblogs.com/xiaoxiaoqingyi/p/6676096.html

把 sdk/native 目录 拷贝到 项目的 jni 目录下,

 

Ubuntu+IntelliJ IDEA+Android 配置NDK环境+openCV

标签:htm   intellij   archive   tool   abi   blank   项目   移植   输入   

原文地址:http://www.cnblogs.com/haoxr/p/7606002.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!