ubuntu android ndk开发环境搭建,Ubuntu+IntelliJ IDEA+Android 配置NDK环境+openCV

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

一 NDK在Ubuntu的配置

二 NDK在IntelliJ IDEA中的配置

三 NDK开发实例

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

public classNDKUtils {public nativeString 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-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中使用:

packagecom.lemoncome.opencvdemo;importandroid.support.v7.app.AppCompatActivity;importandroid.os.Bundle;importandroid.widget.TextView;public class MainOpencvActivity extendsAppCompatActivity {

@Overrideprotected voidonCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main_opencv);

NDKUtils ndk= newNDKUtils();

TextView text=(TextView) findViewById(R.id.tv);

text.setText(ndk.invokeCmethod());

}

}

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

以上测试成功.

四 Android+openCV

最新的3.3,我下载了3.2

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值