NDK开发入门
2017-07-14 14:48
253 查看
本文以在Android APP使用
编写cmake
此部分的流程可以参见上一篇blog《CMake交叉编译》
使用
在以上的java source file目录下使用
使用
执行上述操作后,在class目录下会生成
然后在刚才的
speexdsp中的回音消除为例来说明NDK开发流程;
编译native lib
downloadspeexdsp
编写cmake
此部分的流程可以参见上一篇blog《CMake交叉编译》
写好Java Class
// EchoCanceller.java package com.icatchtek.smarthome.echo; public class EchoCanceller { public native int echoInit( int frameSize, int filterLength ); public native void echoCancellation( byte[] input, byte[] echo, byte[] output ); public native void echoDestroy(); }
使用javac
和javah
生成JNI header file
在以上的java source file目录下使用javac来生成class文件
// -d class -> 指定目录,class文件生成在`class`目录下 javac -d class EchoCanceller.java
使用
javah来生成JNI header file
cd class javah -classpath . com.icatchtek.smarthome.echo.EchoCanceller
执行上述操作后,在class目录下会生成
com_icatchtek_smarthome_echo_EchoCanceller.h
编写对应的JNI实现
有了header file以后,进行对应的功能实现com_icatchtek_smarthome_echo_EchoCanceller.cpp,对JNI编写不熟悉的可以参见《Pro Android C++ with the NDK》
添加JNI file到native lib编译
有了对应的功能实现以后,需要把com_icatchtek_smarthome_echo_EchoCanceller.cpp加入native lib再次编译
编写Java测试程序
进行完上述步骤以后,native & JNI的准备就已经好了;我们把编译好的android lib放入对应架构的APP lib目录下;然后在刚才的
EchoCanceller.java中添加进lib的load,就可以在APP中使用
EchoCanceller测试功能了
package com.icatchtek.smarthome.echo; public class EchoCanceller { public native int echoInit( int frameSize, int filterLength ); public native void echoCancellation( byte[] input, byte[] echo, byte[] output ); public native void echoDestroy(); static { System.loadLibrary( "speexdsp" ); } }
相关文章推荐
- Android Studio NDK开发入门
- NDK开发 从入门到放弃(七:Android Studio 2.2 CMAKE 高效NDK开发)
- Android Studio NDK JNI开发入门记录
- android的ndk开发入门示例
- NDK开发 从入门到放弃(七:Android Studio 2.2 CMAKE 高效NDK开发)
- 安卓NDK开发入门DEMO
- 使用Android Studio开发ndk-Jni(入门)
- JNI&NDK开发从入门到放弃(一)
- NdkDemo开发从环境搭建到入门提高
- Android studio NDK开发 从入门到实践三
- 2017年6月版NDK开发入门
- Android开发——NDK开发入门
- Android 开发 NDK从入门到精通
- AndroidStudio之NDK开发CMake CMakeLists.txt编写入门
- Android studio如何导出.so库(NDK开发入门)
- Android studio NDK开发 从入门到实践四
- NDK开发 从入门到放弃(四:JNI函数、C与C++调用函数的区别)
- Android studio NDK开发 从入门到实践一
- NDK开发 从入门到放弃(一:基本流程入门了解)
- Android NDK开发轻松入门