Android 做jni的时候 需要根据native java类生成对应的.h头文件,然后根据.h头文件写cpp文件。
在Android studio 中可以添加自定义工具,将javah指令添加进去
首先我们看下javah的指令格式
由此指令我们知道怎么使用javah指令
例如有java文件 D:\project\Test\app\src\main\java\com\example\test.java
编译生成的class文件位于D:\project\Test\app\build\intermediates\javac\debug\classes\com\example\test.class
要输出的头文件目录 D:\project\Test\app\src\main\cpp
使用javah的指令为
javah -classpath D:\project\Test\app\build\intermediates\javac\debug\classes\ -jni -d D:\project\Test\app\src\main\cpp com.example.test
知道指令后,将这个指令添加到android studio
File - Settings - 打开Settings
Name: javah 显示的名称
Description: javah 指令详情
Program: javah 指令的路径,因为我电脑已经将javah加入环境变量了,可以在任何地方输javah都可以有返回,所以这里填javah,否则的话要填全路径
Arguments: -classpath $OutputPath$ -jni -d $SourcepathEntry$\..\cpp $FileClass$ 参照指令我们知道要输入什么参数,在输入框右侧点击 + 可以查看对应变量的路径。
这里显示的路径信息是根据你android studio 工程当前打开什么文件,根据这文件展示路径信息的,选择对应路径信息,填入Arguments 里就行
working directory: 指令在哪个路径下执行 这个路径就可以随便填,如果参数不填classpath的,这里的目录就要填class文件所在的目录D:\project\Test\app\build\intermediates\javac\debug\classes\
配置完后,保存即可。
使用的话就很简单,选中native java文件,右键选择External Tools--javah 即可生成头文件在-d 参数的目录下