标签:htm intellij archive tool abi blank 项目 移植 输入
最近需要将Python人证对比模型移植安卓端.安卓端需要使用openCV简单的人像提取处理.在配置openCV前首先需要配置NDK环境.
NDK的介绍(http://www.cnblogs.com/leaven/archive/2010/05/27/1744855.html)
参考: http://blog.csdn.net/jq_ak47/article/details/52349189
参考: http://blog.csdn.net/yipatshi/article/details/54585049
参考: 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 字符串
以上测试成功.
首先下载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