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

來源:互聯網
上載者:User

標籤: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 := NDKUtilsLOCAL_SRC_FILES := com_lemon_demo_utils_NDKUtils.cinclude $(BUILD_SHARED_LIBRARY)

Application.mk:

APP_PLATFORM := android-23APP_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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.