Wons' Blog

个人博客

Android程序猿


回首向来萧瑟处,也无风雨也无晴

在Android Studio中进行NDK开发的一般流程

1 在类中声明native方法

2 在 app/src/main 下创建 jni 目录

3 在 app/src/main/java 下运行命令 javah -jni -d ../jni com.path2class.ClassName

4 在 app/src/main/jni 下生成了对应的头文件,创建cpp源文件,利用此头文件实现对应的native方法

5 在 app 下的 build.gradle 文件中,android->defaultConfig下添加代码:

ndk {    
   moduleName "jnitest"          // 生成的so动态库名称
   abiFilters "armeabi", "armeabi-v7a", "x86" // 输出指定三种abi体系结构下的so库,目前可有可无
}

6 在需要用到native方法的java类中添加如下代码来加载native库:

static {    
   System.loadLibrary("jnitest");    // 必须与之前在build.gradle中设置的so库名称一致
}

7 现在可以在加载了so库的java类中调用native方法了

最近的文章

Java下合并多个文件

在实际项目中,在处理较大的文件时,常常将文件拆分为多个子文件进行处理,最后再合并这些子文件。Java中合并子文件最容易想到的就是利用BufferedStream进行读写。利用BufferedStream合并多个文件public static boolean mergeFiles(String[] fpaths, String resultPath) { if (fpaths == null || fpaths.length < 1 || TextUtils.isEmpty(re...…

• Java继续阅读
更早的文章

使用OpenCV Android SDK从摄像头帧实时检测人脸

在配置好 OpenCV Android SDK 之后(具体见前一篇文章Android Studio中使用OpenCV Android SDK),可以使用 OpenCV 封装的接口很方便地进行各种图像处理操作。这里简单介绍如何直接使用 OpenCV 训练的人脸模型直接从摄像头帧检测人脸。1. 新建Android Project这里可以直接使用默认的 Android Studio 项目模板, Activity 选择 Empty Activity 。2. 配置OpenCV Android SDK...…

• Android继续阅读