在安卓JNI编程中,手动写代码让原生函数及参数列表域Java类文件的原始定义一致是一件繁琐的工作。我们可以利用JDK中的javah的命令行工具为原生方法解析java类文件并生成由原生方法声明组成的头文件。
1.添加外部工具命令。
- 点击菜单栏中File按钮,选择Settings>>Tools>>External Tools。
- 填写工具名称,工具分组和工具功能描述。
- 点击程序路径文本框后的Inser Macros 按钮指定命令的路径。
- 指明外部命令行工具名称。
- 指定执行命令行工具需要的各类参数。
- 设置工作路径
完整命令
$JDKPath$\bin\javah -d src/main/cpp -classpath F:\Android\sdk\extras\android\m2repository\com\android\support\appcompat-v7\26.0.0-alpha1\appcompat-v7-26.0.0-alpha1-sources.jar;$OutputPath$;$ModuleSdkPath$\platforms\android-25\android.jar $FileClass$
- $JDKPath$\bin\javah
命令行工具的路径
- -d
指明生成的头文件所存放的路径
- -classpath
指定类和所依赖的架包所存在的路径
- $FileClass$
指定的类
2.指定java类文件生成JNI接口C/C++头文件
- 创建java类文件,并在类中声明JNI接口方法。
- 工程目录视图内选中需要生成对应JNI接口C/C++头文件的java类文件。右键选择External Tools>>Generate C and C++ Header File。
- 查看生成的头文件。
按着上述步骤进行设置和操作之后我们要在C/C++文件中包含这个文件,并一一实现其中的原生方法。