Java Native Interface (JNI) 是java提供的本地化接口,方便java代码调用C,C++等本地代码所封装的接口。NDK是Google为Android提供的一个工具集合,通过MK文件可以方便快捷的生成各个CPU平台所需要的动态库。使用NDK有如下好处。
1. so库的高难度反编译,提高代码的安全性。
2. 可以方便的使用C/C++等Native语言的第三方库。
3. 核心代码通过动态库的方式,便于代码移植。
4. 提高某些特性情况下程序的执行效率。
本文以Win7系统,Android Studio 3.0为环境测试。
JNI开发的流程:
1. 创建Android Studio项目,在main文件夹的同级目录创建jni文件夹
2. 创建Java Native交互类
3. 使用javac命令生成java源文件生成class文件
注意:(1).生成源文件时需要全路径,这样会在同级目录下生成class文件,也可以通过 -d 的命令自定义class文件的生成路径
上面就是通过指定文件夹生成对应的class文件。
注意:(2). 如果编译的java文件不在同一个目录可通过如下方式:
4. 通过javah命令以及指定第三步生成的class文件路径生成对应的C/C++ xx.h文件
也可以通过-d 指定xx.h文件的生成路径。
5. 创建xx.cpp文件实现第四步生成的xx.h头文件
到这里整个jni开发的准备工作就做完了,如何实现数据交互将在下一章讲述。