Android Studio 自动生成JNI接口C/C++头文件

在安卓JNI编程中,手动写代码让原生函数及参数列表域Java类文件的原始定义一致是一件繁琐的工作。我们可以利用JDK中的javah的命令行工具为原生方法解析java类文件并生成由原生方法声明组成的头文件。

1.添加外部工具命令。

  • 点击菜单栏中File按钮,选择Settings>>Tools>>External Tools。
添加外部工具命令
添加外部工具命令
  • 填写工具名称,工具分组和工具功能描述。
  • 点击程序路径文本框后的Inser Macros 按钮指定命令的路径。
指定程序命令的路径
  • 指明外部命令行工具名称。
指明外部命令行工具名称
  • 指定执行命令行工具需要的各类参数。
指明参数
  • 设置工作路径
设置工作路径.png

完整命令

$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接口方法。
创建java类文件
  • 工程目录视图内选中需要生成对应JNI接口C/C++头文件的java类文件。右键选择External Tools>>Generate C and C++ Header File。
生成JNI接口C/C++头文件
  • 查看生成的头文件。
生成的头文件.png

按着上述步骤进行设置和操作之后我们要在C/C++文件中包含这个文件,并一一实现其中的原生方法。

在编程时,需要注意的是,java 类文件所在的包名路径必须和原生方法中指定的包名保持一致,不然java无法调用原生方法。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容