JNI 小试牛刀

2017-05-24  本文已影响27人  适量哥

  最近在学习语音编解码,但语音编解码库用的是 C/C++ 写的,所以不得不接触了一下 JNI 。对于 JNI 最大的感触就是门槛巨高,用 AndroidStudio 开发的资料非常少,感觉找不到路,还曾幻想出现一个如玄幻小说主人公一样有个名师在身边指导下,呵呵。走了很多弯路,看了很多博客,最终在简书找到了很多资料 (发现简书资料都挺新的) ,才写出了个 HelloWord,但还蛮开心的。

JNI 和 NDK

为啥要有 JNI

因为 C/C++ 语言编译后的文件可以直接在本地系统中运行,而 Java 文件编译后生成的是字节码文件,需要依赖 Java 虚拟机来运行,C/C++ 运行效率高。另一方面,字节码文件很容易被反编译,不安全。而且,硬件相关驱动、许多知名的音视频编码库 (例如 slik/G729) 也是 C/C++ 编写的。Java 程序想要执行高性能的代码、想要高安全性或者需要调用系统驱动和重用已有的音视频解码库,那么就不得不使用 JNI 了。

用 JNI 写个 HelloWord

Android Studio NDK开发-环境配置

使用Android Studio 进行NDK开发和调试

Create hello-JNI with android

如何优雅地使用NDK

AndroidStudio NDK开发最佳入门实践

javah
$JDKPath$/bin/javah
-encoding UTF-8 -d ../jni -jni $FileClass$
$SourcepathEntry$..\java

ndk-build
F:\android-sdk\ndk-bundle\build\ndk-build.cmd
$ModuleFileDir$\src\main

ndk-build clean
F:\android-sdk\ndk-bundle\build\ndk-build.cmd
clean
$ModuleFileDir$\src\main

上一篇 下一篇

猜你喜欢

热点阅读