一、前言
我们知道进行 NDK 开发中,native 方法大多是需要进行静态注册的,如果手动一个个写,不仅容易出错,而且繁琐和浪费时间。那么有什么好用的工具可以使用呢?
这个其实是有的,就在我们的JDK中就有一个 javah.exe
工具帮助我们生成 JNI 的头文件,我们只需要将其配置到 Android Studio 中就可以很方便的使用它了。
二、效果示例
如下,com_afei_openglsample_NativeRenderer.h 就是一个自动生成的头文件了,可以省去我们很多工夫,那么该怎么配置呢?
三、配置
在 Settings -> Tools -> External Tools,点击加号添加一个工具。填写信息如下:
其中 Name、Group、Description 根据自己喜好填写就行。值得注意的是如下几点:
1. Program
一般我们都有配置好 JDK 的环境变量,这里直接填写 javah
即可。
2. Argument
关于 javah 的参数说明如下:
用法:
javah [options] <classes>
其中, [options] 包括:
-o <file> 输出文件 (只能使用 -d 或 -o 之一)
-d <dir> 输出目录
-v -verbose 启用详细输出
-h --help -? 输出此消息
-version 输出版本信息
-jni 生成 JNI 样式的标头文件 (默认值)
-force 始终写入输出文件
-classpath <path> 从中加载类的路径
-cp <path> 从中加载类的路径
-bootclasspath <path> 从中加载引导类的路径
<classes> 是使用其全限定名称指定的
(例如, java.lang.Object)。
我使用的参数配置是:-cp $Classpath$ -d $ModuleFileDir$\src\main\cpp\inc $FileClass$
。
其中
-cp <path>
是为了解决 Android 中一些类找不到的问题,例如 Bitmap 等。不添加的话就会有 “无法确定Bitmap签名” 这样的报错了。
-d <dir>
这个你填写你需要 输出的文件夹路径 即可。
3. Working directory
这个填写 $SourcepathEntry$
即可,表示你的源代码路径。
四、使用
选中你要使用的类,右键使用你配置好的工具即可,如下图:
以上,你就可以很轻松的一键完成 JNI 头文件生成了。