在Android上部署深度学习模型之编写JNI接口
Posted 修炼之路
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Android上部署深度学习模型之编写JNI接口相关的知识,希望对你有一定的参考价值。
导读
上篇文章我们介绍了CMakeLists文件
的编写,以及相关参数的配置。在配置好环境之后,我们就开始编写我们的cpp了,因为我这里实现的功能比较简单,所以就直接通过一个jni.cpp
就可以实现这些功能。如果功能复杂,使用的模型比较多,最好多分成几个cpp便于管理和更新。
JNI函数编写
JNI
(java native interface),用来编写java与c++交互的接口,在编写的时候需要注意一些编写的规则,java数据类型与c++数据类型的转换。这里简单介绍一下
- JNI中的数据类型
在JNI中如果需要接收java的数据,在对应的数据类型前加一个j,例如java中的boolean
类型,对应JNI中的jboolean
,其他类型同理。
- 函数名命名规则
JNI中的函数需要对应java中的函数,所以JNI函数的命名有一定的规则,下面我们来看一个函数的命名规则,JNI中的函数名称如下:
Java_com_example_android_1mobilenet_MobileNet_Init
Java_com_example_android_1mobilenet:表示的是java的包名,1表示的是下划线
MobileNet:表示的是类名
Init:表示的是函数名
以上是关于在Android上部署深度学习模型之编写JNI接口的主要内容,如果未能解决你的问题,请参考以下文章