Java 如何接收kernel传过来的数组(推荐)

 更新时间:2024年08月03日 10:28:57   作者:baidu_37552881  
这篇文章主要介绍了Java 如何接收kernel传过来的数组,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧

如接收float 类型数组,JNI 定义jfloatArray 类型数据 通过env->ReleaseFloatArrayElements 将float 数据拷贝成jfloatArray类型
JNI 部分:

static jfloatArray TempMlsSensorRead_native(JNIEnv* env , jobject /* clazz */,jint length){
     float * address=(float *)g_device->mlx90640_read(g_device);
           float *example =new float [768]{};
           for(int i=0;i<768;i++){
               example[i]=address[i];
           }
           jfloatArray copyArray = env->NewFloatArray(768);
           env->ReleaseFloatArrayElements(copyArray,example,0);
    return copyArray;
}
static const JNINativeMethod method_table[] = {
  { "nativeTempMlsSensorOpen", "()I", (void*)TempMlsSensorOpen_native },
  { "nativeTempMlsSensorWrite", "(I)I", (void*)TempMlsSensorWrite_native },
+ { "nativeTempMlsSensorRead", "(I)[F", (void*)TempMlsSensorRead_native },
  { "nativeTempMlsSensorReadValue", "()I", (void*)TempMlsSensorRead_native_value },
  { "nativeTempMlsSensorIoctl", "(II)I", (void*)TempMlsSensorIoctl_native },
  { "nativeTempMlsSensorClose", "()I", (void*)TempMlsSensorClose_native },

AIDL 接口添加float 数组类型

interface ITempMlsSensor {
    int TempMlsSensorOpen();
    int TempMlsSensorWrite(int value);
 +  float[] TempMlsSensorRead(int length);
    int TempMlsSensorReadValue();
    int TempMlsSensorIoctl(int cmd, int value);
    int TempMlsSensorClose();
}

JAVA 类型数组类型

    @Override
  +  public float[] TempMlsSensorRead(int length) throws android.os.RemoteException{
  +          return nativeTempMlsSensorRead(length);
  + }
    public static native int nativeTempMlsSensorOpen();
    public static native int nativeTempMlsSensorWrite(int value);
  +  public static native float [] nativeTempMlsSensorRead(int length);
    public static native int nativeTempMlsSensorReadValue();
    public static native int nativeTempMlsSensorIoctl(int cmd,int value);
    public static native int nativeTempMlsSensorClose();

到此这篇关于Java 如何接收kernel传过来的数组的文章就介绍到这了,更多相关Java接收kernel数组内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 在Java中使用MongoDB的方法详解

    在Java中使用MongoDB的方法详解

    这篇文章主要给大家介绍了关于在Java中使用MongoDB的相关资料,要操作MongoDB数据库你需要使用MongoDB的Java驱动程序,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-12-12
  • Apache commons fileupload文件上传实例讲解

    Apache commons fileupload文件上传实例讲解

    这篇文章主要为大家详细介绍了Apache commons fileupload文件上传实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-10-10
  • 快速理解spring中的各种注解

    快速理解spring中的各种注解

    这篇文章主要介绍了快速理解spring中的各种注解,具有一定借鉴价值,需要的朋友可以了解下。
    2017-12-12
  • 使用@pathvariable与@requestparam碰到的一些问题及解决

    使用@pathvariable与@requestparam碰到的一些问题及解决

    这篇文章主要介绍了使用@pathvariable与@requestparam碰到的一些问题及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • Mybatis实现一对一、一对多关联查询的方法(示例详解)

    Mybatis实现一对一、一对多关联查询的方法(示例详解)

    这篇文章主要介绍了Mybatis实现一对一、一对多关联查询的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-04-04
  • Android 资源 id详解及的动态获取

    Android 资源 id详解及的动态获取

    这篇文章主要介绍了Android 资源 id详解及的动态获取的相关资料,需要的朋友可以参考下
    2016-12-12
  • springboot如何自定义properties文件

    springboot如何自定义properties文件

    这篇文章主要介绍了springboot如何自定义properties文件,本文通过示例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2024-06-06
  • Spring中的异步方法@Async失效的原因详解

    Spring中的异步方法@Async失效的原因详解

    这篇文章主要介绍了Spring中的异步方法@Async失效的原因详解,@Async属于异步注解,@Async放在方法上标识该方法为异步方法,异步是指进程不需要一直等待下去,而是继续执行下面的操作,不管其他进程的状态,需要的朋友可以参考下
    2024-01-01
  • 基于jQuery获取table数据发送到后端

    基于jQuery获取table数据发送到后端

    这篇文章主要介绍了基于jQuery获取table数据发送到后端,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • SpringCloud+RocketMQ实现分布式事务的实践

    SpringCloud+RocketMQ实现分布式事务的实践

    分布式事务已经成为了我们的经常使用的。所以我们来一步一步的实现基于RocketMQ的分布式事务。感兴趣的可以了解一下
    2021-10-10

最新评论