Java JNI 入门篇——传递数组与修改数组
来源:互联网 发布:手机dns优化apk 编辑:程序博客网 时间:2024/04/27 19:32
这里不在重复Java JNI 的开发过程了,不熟悉的同学请参考:Java JNI HelloWorld 直接上主要代码:
ArrayJNI.java
package com.example.jni;public class ArrayJNI { static { System.loadLibrary("arrayjni"); } public native byte[] process(byte[] data); public static void main(String[] args) throws Exception { byte[] srcbyte = new byte[] { 1, 2, 3 }; ArrayJNI item = new ArrayJNI(); byte[] resultbyte = item.process(srcbyte); System.out.print("(Java)result byte: "); for (int i = 0; i < resultbyte.length; i++) { System.out.printf("%d\t", 0xff & resultbyte[i]); } System.out.println(); }}
arrayjni.cpp
// arrayjni.cpp : Defines the exported functions for the DLL application.//#include "stdafx.h"#include "com_example_jni_ArrayJNI.h"#include <iostream>/** Class: com_example_jni_ArrayJNI* Method: process* Signature: ([BII)[B*/JNIEXPORT jbyteArray JNICALL Java_com_example_jni_ArrayJNI_process(JNIEnv * env, jobject obj, jbyteArray byteArray) { jbyte* receivedbyte = env->GetByteArrayElements(byteArray, 0); jsize size = env->GetArrayLength(byteArray); printf("(C++) received byte: "); for (int i = 0; i < size; i++) { int value = (int)(receivedbyte[i] & 0xff); printf("%d\t",value); jbyte v = (~value); env->SetByteArrayRegion(byteArray, i, 1, &v); } return byteArray;}
ok!
0 0
- Java JNI 入门篇——传递数组与修改数组
- JAVA->JNI 传递字符串数组
- Java层与Jni层的字节数组传递
- Java层与Jni层的数组传递
- Java层与Jni层的数组传递
- Java层与Jni层的数组(buffer)传递
- Java层与Jni层的数组传递
- Java层与Jni层的数组传递
- Android Java层与Jni层的数组传递
- JNI数组传递与异常处理
- JNI数组传递与异常处理
- JNI数组传递与异常处理
- JNI数组传递与异常处理
- JNI数组传递与异常处理
- JNI数组传递与异常处理
- JNI数组传递与异常处理
- JNI中C和java传递数组
- jni中c++给java传递数组
- XML 编辑器
- 蓝桥杯小朋友排队问题
- 深入理解java回收机制
- mybatis详解
- 微信小程序中rpx与rem单位使用
- Java JNI 入门篇——传递数组与修改数组
- 图像特征点提取及描述子汇总:FIST、SURF、FAST、BRIEF、ORB、BRISK、FREAK
- XML - E4X
- 378. Kth Smallest Element in a Sorted Matrix(查找矩阵中第k小的数)
- Moosefs(mfs)在云平台下部署全攻略
- CRC
- 写布局时,实时显示的模拟器UI底下菜单栏如何去掉
- Android拍照及相册图片裁剪操作
- 冒泡排序