使用Android Studio 简化JNI的开发

1,333 阅读1分钟

目标

通过Android Studio简化JNI的工作,通过IDE的帮助,自动生成JNI部分的代码,只需要关注业务代码的处理就行. 完成一个简单的Demo,定义一个native函数,在Java层调用这个方法,返回一个字符串,native层调用Java的一个函数,完成Java-> Jni, Jni->Java.

源码

以下文章中的代码在这块

步骤

  • 新创建一个支持native的project
  • 定义一个新的natvie函数
  • 通过native方法调用java层的方法实现

功能实现

新建native工程

image.png

如果是已经有的工程怎么办?

如果是已经现成的功能需要支持JNI怎么办

可以把新生成的位置中的相应代码整理到旧的工程中

  • build.gradle
  • cpp文件夹

完成java->Jni Jni->Java方法的定义和实现

定义一个native方法,因为没有定义,所以Android Studio标红了.右键点击,选择下图中的创建Jni的模板代码.

image.png

image.png

最新的Android Studio生成Jni Header代码的路径

image.png

这个时候,在native-lib.cpp文件在会自动生成模板代码,可以直接在模板中写业务代码了. demo中直接调用了java层的方法.

image.png

java层的代码,通过透传过来的context来显示一个toast,然后处理一下传入的字符串,返回处理后的字符串

image.png

通过上面的Java->Jni Jni->Java 以及context的透传和显示返回值. 可以解决很大部分的业务Jni调用的需求.